У меня есть формат JSON выглядеть следующим образом:уровень Пропустить когда синтаксический анализ с Gson
{
"root": {
"user": {
"name":"Name",
"age":99,
"another_obj": {
"f1":"abc",
"f2":1
}
}
},
"result_code": 0
}
Я создаю некоторые модели выглядят как:
class User {
private String name;
private int age;
@SerializedName("detail")
private Detail
}
class Detail{
// Define something.
}
наконец создать имя класса UserWapper.
class UserWapper {
@SerializedName("root")
private User user;
}
Для разбора JSON:
String json = "STRING_JSON_ABOVE";
Gson gson = new Gson();
UserWrapper uw = gson.fromJson(json, UserWrapper.class);
Но тока я не хочу создать класс-обертку. Потому что у меня много классов. Если создать WrapperClass ->: |
Я хочу сделать что-то вроде:
User u = gson.fromJson(json, User.class).
(Примечание: я не могу изменить формат JSON данных с сервера Я также Гг поиска что-то пользовательские gson адаптер, но я не найти способ для Скипа. «уровень» другого поля).
Hi, как u смотреть. Нам еще нужно добавить один шаг, чтобы получить строковый внутренний «root» obj. Можем ли мы сделать это простым, чем: Пользователь u = gson.fromJson (json, User.class). – quangson91
@ quangson91 no, это невозможно, если вы не хотите писать пользовательский TypeAdapter или JsonSerialzer, что затруднит его работу. Простое решение - написать оболочку или получить внутренний элемент json и проанализировать его, как я описал в своем ответе. Это самый простой способ. – Devrim
Вы используете Google Map Api? Я часто вижу, что ответ данных будет оберткой с «корневым» объектом: | (Я думаю, что это очень сильно застряло, если мы создадим много класс Wrapper). – quangson91