Я знаю, что есть похожие сообщения об этой проблеме, но, пожалуйста, внимательно прочитайте, прежде чем отмечать их как дубликаты.Не удалось десериализовать объект json для отображения
У меня есть текстовая строка, которую я хочу преобразовать в строку JSON/экземпляр, а затем в переменную карты Java, поэтому я могу получить доступ к каждому атрибуту индивидуально. Это моя строка:
{"S3_r5_Ahf": "0.00025", "S15_r6_Alf": "-0.00514", "S6_r4_Alf": "-0.00126", "S12_r9_Alf": "-0.00595", "S13_r8_Ahf": "0.00018", "S1_r9_Alf": "-0.00385", "S8_r10_Alf": "-0.00849" }
Использование библиотеки GSON Я преобразованный строку в объект JSON с помощью:
Gson gson = new Gson();
String json = gson.toJson(s);
И это прекрасно работает, а вывод:
"{\"S3_r5_Ahf\": \"0.00025\", \"S15_r6_Alf\": \"-0.00514\", \"S6_r4_Alf\": \"-0.00126\", \"S12_r9_Alf\": \"-0.00595\", \"S13_r8_Ahf\": \"0.00018\", \"S1_r9_Alf\": \"-0.00385\", \"S8_r10_Alf\": \"-0.00849\"
Проблема заключается в том, когда я пытаюсь преобразовать ее в карту, используя:
Type type = new TypeToken<Map<String, String>>(){}.getType();
Map<String, String> retMap = gson.fromJson(json,type);
Когда я пытаюсь распечатать retMap, я получаю сообщение об ошибке: JsonDeserializer MapTypeAdapter не удалось десериализовать объект json для сопоставления.
Что я делаю неправильно? Спасибо.
Строка, используется первый уже JSON, второй является JSON убежали, так что не десериализовать – Hacketo