申し訳ありませんが、私の問題は他の問題です。 json-stringから解析するためのJSONパーサメソッドがあります。しかし、json-stringにもjson-stringという値があります。そのような何か:JSON文字列をマップに変換するには
{
"status_code":"255",
"data":"{\"user\":{\"idpolzovatel\":1,\"id_poluch_tip\":1,\"fio_polzovatel\":\"Andrew Artificial\",\"login\":\"imi\",\"parol\":\"698d51a19d8a121ce581499d7b701668\",\"key\":null,\"nachalnik\":1,\"buhgalter\":0,\"delopr\":1},\"token\":\"230047517dd122c8f8116a6fa591a704\"}",
"message":"Successfull!"
}
だから、私の構文解析方法:
public Map<String, String> convertToMapFromJSON(String res){
ObjectMapper objectMapper = new ObjectMapper();
Map<String, String> response = new HashMap<String, String>();
try {
response = objectMapper.readValue(res, new TypeReference<Map<String, String>>);
int t = 0;
} catch (IOException e) {
e.printStackTrace();
}
return response;
}
私はクライアントのレスポンスを取得する:
ResponseEntity<String> responseEntity = restTemplate.postForEntity(REST_SERVICE_URI + "/auth/", data, String.class);
体
String res = responseEntity.getBody();//получаем тело запроса в формате JSON
は、それらを使用します方法:
Map<String, String> response = convertToMapFromJSON(res);
Map<String, String> data1 = convertToMapFromJSON(response.get("data"));
Map<String, String> userDetailes = convertToMapFromJSON(data1.get("user"));
しかし、私は最後の方法data1.get("user");
を使用する場合、私は例外を取得:
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.lang.String
okが、それを得ました。したがって、data1.get("user")
は文字列ではなく、リンクされたハッシュマップです。だから私はこれをすることができます:
Map<String, String> userDetailes = data1.get("user");
?しかし、私はIDEが私の言うところによれば、エラーはdata1.get("user")
が文字列です。デバッガから
ので、どのように私は私のユーザデータでこれのLinkedHashMapを得ることができますか?申し訳ありません、私の英語です。ありがとうございました。
[JSON文字列からハッシュマップを作成する]の可能複製(http://stackoverflow.com/questions/22011200/creating-hashmap-from-a- json-string) – DimaSan
SDEに問題があることがあります。プロジェクトをクリーンアップして再構築しようとすると、IDEコンパイラに依存しないようにコマンドライン(mavenまたはjavac)からビルドしようとします。 – OhadR
実際のJSONペイロードとライブラリ(Jackson?)で質問を更新します。 – LoganMzz