Точный синтаксис для получения вложенного атрибута из ответа Json с помощью gson - PullRequest
0 голосов
/ 08 марта 2012

Я получаю от сервера ответ в этой форме

{"error":null,"id":1,"result":{"admin":false,"firstname":"Jason","id":346,"idHotel":109,"idVendor":null,"lastname":"Butcher","sessionkey":"3c8a17ae47a6d131b1a14b44a1d8f9a9","urlAvatar":"avatar_316_mjm.jpg","urlThumb":"thumb_316_mjm.jpg"}}

И хочу получить различные атрибуты синглов в виде вложенного json-результата в виде примитива

, например

Boolean error=..;
String admin=....;
String idHotel=...;

Я попытался создать класс таким образом

public class HotelLogin {
    public boolean error;
    public int id;
    public Result result;
    //get and set


    public static class Result {
       public String lastname;

       ...
       ...//get and set
    }
}

и использовал этот код для привязки десериализации JSONObject serverResponse

HotelLogin loggedRs= new HotelLogin();
Gson gson = new Gson();
response = gson.fromJson(serverResponse, HotelLogin.class);

Но на данный момент я не знаю, как получить отдельные атрибуты внутреннего json.

И если я использую код

Result user=login.getResult();
String lastname=user.getLastname();

Получить исключение нулевого указателя

1 Ответ

0 голосов
/ 18 апреля 2012

Итак, если у вас есть переменная или возвращаемые данные, которые содержат ответ вашего сервера, вы можете попробовать это:

var newError = data.Error;
var newId    = data.Id;
var newFirstName = data.result.firstname;

ИЛИ

var serverResponse = data; //(considering that this 'data' is your json object);

//you access it through dot notation.

serverResponse.error;
serverResponse.result.admin;
serverResponse.result.id;

Каждый получит необходимые данные. Вы можете перебрать свой объект json, если хотите, но мне нравится использовать точечную запись. Обратите внимание, что вы не всегда можете его использовать, поскольку вы должны знать, если атрибут имеет дочерний узел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...