#java #android #json #gson
#java #Android #json #gson
Вопрос:
Я создаю приложение для Android, и у меня есть данные JSON, которые содержат строки Юникода. При получении данных и использовании InputStreamReader для их анализа строки Юникода остаются в порядке. Однако, когда я использую JsonReader для анализа JSON, он, похоже, преобразовал его в некоторый формат. Я просмотрел исходный код, и не похоже, что он делает что-то необычное (очевидно, я могу что-то упустить) — он просто берет строку и сохраняет ее в строковую переменную. У кого-нибудь есть идеи о том, почему мои строки в Юникоде преобразуются неправильно?
Спасибо
Комментарии:
1. Покажите нам код: что вы используете в качестве входных данных для
JsonReader
? Как вы создаетеInputStreamReader
? Вы где-нибудь указываете кодировку? Как он преобразуется неправильно? Какие входные данные? Каков результат?
Ответ №1:
Вы можете декодировать свой поток в строку, используя InputStreamReader
и указав свою кодировку (например, UTF-8 или Unicode), затем передать свою строку JSONObject
или JSONArray
создать такой объект.
JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
Справочные документы:
Комментарии:
1. IIRC кодировка называется «UTF-8» (с тире).