2016-08-21 3 views
-3

У меня JSON в этом формате.
Я пытаюсь создать класс сериализации для хранения значения.Как читать объект внутри массива JSON

Как читать поле «personaldata»?

Я делаю отдельный класс PersonalData для его чтения.
И в моем главном классе сериализации я читаю его как

List<PersonalData>personalData 

Является ли это правильный способ сделать это? Если да, то как я получу значения личных данных?

{ 
    "result": [ 
    { 
     "name": 0, 
     "age": 1, 
     "class": 0, 
     // More data here 
     "personalData": { 
     "isMarried": true, 
     "isEligible": false, 
     "Indian": true 
     } 
    } 
    ] 
} 
+0

Есть тысячи ответов на эту проблему уже. Вы можете использовать GSON, но сначала выполните поиск в Интернете перед публикацией вопроса. –

ответ

0

Если вы используете какой-то парсер, как GSON или LoganSquare вы можете использовать их аннотации, и это будет очень легко разобрать JSON непосредственно к model. В противном случае, если вы используете родной JSON API

Вы можете использовать что-то вроде этого

JSONArray arr=new JSONArray(response); 
JSONObject personalData=arr.getJSONObject("personalData"); 
+0

Я использую только gson, я не могу написать класс модели для хранения valeues.i, новичок в синтаксическом анализе. –

+0

см. Выше ответ @ cricket_007, поскольку он сделал одолжение создания моделей для вас. Теперь вы можете использовать GSON g = new GSON(); Результаты r = g.fromJson (response, Results.class); –

0

Я делаю отдельный PersonalData класс, чтобы прочитать его ..

Хорошо, тогда что - это то, как вы к нему обращаетесь. Получив этот объект от какого-то родительского объекта Results.

Например, при реализации некоторых из указанных ниже классов, когда вы десериализации JSON, вы используете Results.getResults().get(0).getPersonalData();

public class Results { 
    ArrayList<ResultData> result; 

    // TODO: write getResults() 
} 
public class ResultData { 
    int name, age, class; 
    // Some more data 
    PersonalData personalData; 

    // TODO: write getPersonalData() 
} 
public class PersonalData { 
    boolean isMarried, isEligible, Indian; 
}