GSON и JSON десериализации - PullRequest
       3

GSON и JSON десериализации

1 голос
/ 03 сентября 2011

Это кодировка json моего php echos:

{"detail1":{"key1":"value1","key2":"value2","key3":"value3"},"detail2":["elementone","elementtwo","elementthree"],"detail3":["element1","element2","element3"]}

Команды gson, которые я использую в приложении:

Gson gson = new Gson();
ParseActivity.parsedata = gson.fromJson(result, new TypeToken < HashMap < String , Object>>(){}.getType());

Но gson дает исключение jsonparseexception и не можетдля анализа parsedata является статической переменной того же типа.

Спасибо за любую помощь

1 Ответ

3 голосов
/ 03 сентября 2011

Вам нужно быть более явным в возвращаемом типе. Поле detail1 является Map<String, String>, а остальные поля List<String>. Вам нужно создать класс-оболочку (Javabean) с точно такими полями:

public class Details {
    private Map<String, String> detail1;
    private List<String> detail2;
    private List<String> detail3;

    // Add/generate getters/setters.
}

, чтобы вы могли использовать его следующим образом:

Details details = new Gson().fromJson(result, Details.class);

В качестве альтернативы вы можете разрешить Gson преобразовать его в дерево JsonElement, чтобы вы могли пройти его вручную:

JsonElement details = new Gson().toJsonTree(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...