2016-06-21 6 views
0

Я использую следующее json для своего приложения для Android.Чтение Boolean от JSON

[ 
{ 
    "id" : "001", 
    "firstName" : "Mark", 
    "lastName" : "Mason", 
    "role" : "CEO", 
    "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
}, 
{ 
    "teamName" : "iOS", 
    "members" : [ 
     { 
      "id" : "002", 
      "firstName" : "Olly", 
      "lastName" : "Berry", 
      "role" : "iOS Team Lead", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png", 
      "teamLead" : true 
     }, 
     { 
      "id" : "003", 
      "firstName" : "James", 
      "lastName" : "Frost", 
      "role" : "iOS Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "004", 
      "firstName" : "Liam", 
      "lastName" : "Nichols", 
      "role" : "iOS Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "005", 
      "firstName" : "Chris", 
      "lastName" : "Watson", 
      "role" : "iOS Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "006", 
      "firstName" : "Richard", 
      "lastName" : "Turton", 
      "role" : "iOS Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "007", 
      "firstName" : "Matt", 
      "lastName" : "Colliss", 
      "role" : "iOS Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "008", 
      "firstName" : "David", 
      "lastName" : "Gibson", 
      "role" : "iOS Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "009", 
      "firstName" : "Tom", 
      "lastName" : "Guy", 
      "role" : "iOS Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "010", 
      "firstName" : "Rich", 
      "lastName" : "Hodgkins", 
      "role" : "iOS Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     } 
    ] 
}, 
{ 
    "teamName" : "Android", 
    "members" : [{ 
      "id" : "011", 
      "firstName" : "David", 
      "lastName" : "Branton", 
      "role" : "Android Team Lead", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png", 
      "teamLead" : true 
     }, 
     { 
      "id" : "012", 
      "firstName" : "Dre", 
      "lastName" : "Pilipczuk", 
      "role" : "Android Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "013", 
      "firstName" : "Ray", 
      "lastName" : "Britton", 
      "role" : "Android Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "014", 
      "firstName" : "Charly", 
      "lastName" : "Murillo", 
      "role" : "Android Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     } 
    ] 
}, 
{ 
    "teamName" : "Web", 
    "members" : [{ 
      "id" : "015", 
      "firstName" : "Ryan", 
      "lastName" : "French", 
      "role" : "Web Team Lead", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png", 
      "teamLead" : true 
     }, 
     { 
      "id" : "016", 
      "firstName" : "James", 
      "lastName" : "Ward", 
      "role" : "Web Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "018", 
      "firstName" : "Adam", 
      "lastName" : "Smith", 
      "role" : "Web Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "019", 
      "firstName" : "Leonard", 
      "lastName" : "Da Costa", 
      "role" : "Web Developer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     } 
    ] 
}, 
{ 
    "teamName" : "Design", 
    "members" : [{ 
      "id" : "020", 
      "firstName" : "Hannah", 
      "lastName" : "Tempest", 
      "role" : "Design Team Lead", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png", 
      "teamLead" : true 
     }, 
     { 
      "id" : "021", 
      "firstName" : "Ellis", 
      "lastName" : "Reed", 
      "role" : "Designer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "022", 
      "firstName" : "Pete", 
      "lastName" : "Horsham", 
      "role" : "Designer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "023", 
      "firstName" : "Hemel", 
      "lastName" : "Dave", 
      "role" : "Designer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     }, 
     { 
      "id" : "024", 
      "firstName" : "Hannah", 
      "lastName" : "Corke", 
      "role" : "Designer", 
      "profileImageURL" : "http://developers.mub.lu/resources/profilePlaceholder.png" 
     } 
    ] 
} 

]

отобразить эти данные успешно в recyclerview. Тем не менее, я хочу выделить строку ведущего фотографа. Объект ведущего фотографа имеет объект «teamLead», а другие нет.

Так что если я установил его в true.

for(int j=0;j<teamMembersArray.length();j++){ 

//The model class which contains the setters/getters 
//in order to "deserialize" the JSON objects into string,int,boolean 
//objects. 
      Model m = new Model(); 


      JSONObject teamObject = teamMembersArray.getJSONObject(j); 


      m.setId(teamObject.getInt("id")); 
      //This line refers to ALL JSON OBJECTS!!! I want 
      //to read only those who had teamLead separately from 
      //the other objects. 

     if(teamObject.has("teamLead")){ 
           m.setTeamLead(teamObject.getBoolean("teamLead")); 
          }else { 

           m.setId(teamObject.getInt("id")); 
           m.setProfileImageURL(teamObject.getString("profileImageURL")); 
           m.setFirstName(teamObject.getString("firstName")); 
           m.setLastName(teamObject.getString("lastName")); 
           m.setRole(teamObject.getString("role")); 


           //Finally I am adding the string objects into an ArrayList. 
           modelArrayList.add(m); 

          } 

Я получаю исключение, говоря, что teamLeader JSONObject не существует. Это настолько запутанная и перепутанная ситуация.

Как это исправить?

Thanks,

Theo.

+0

почтового индекс для teamLeader объекта; В вашем коде нет teamLeader – Gaurav

ответ

1

исключения сказать, что teamLead JSONObject, не существует

Поскольку teamLead ключа не avalaible во всех JSONObject's, которая находится в teamMembersArrayJSONArray.

Таким образом, чтобы получить его работу добавить проверку на нуль перед доступом значения для teamLead ключа от JSONObject как:

if (teamObject.has("teamLead") && !teamObject.isNull("teamLead")) { 
    m.setTeamLead(teamObject.getBoolean("teamLead")); 
}else{ 
    m.setTeamLead(false); // set default value here 
} 
+0

Я просто набрал тот же ответ @ ρяσѕρєя K. +1 для этого. – Raghavendra

+0

Спасибо, что ответили. Я добавил ваш код, но показан только ведущий фотограф. Я хочу показать все. И ведущий фотограф должен иметь разные цвета, поэтому его можно отличить от других членов команды. – Theo

+0

@ Theo: Показать обновленный код –

Смежные вопросы