2016-06-21 98 views
0

我为我的android应用使用以下json。从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不存在。这是令人困惑和混乱的情况。

我该如何解决这个问题?

谢谢,

泰奥。

+0

为teamLeader对象邮编;在你的代码中没有teamLeader – Gaurav

回答

1

例外说teamLead的JSONObject,不存在

因为teamLead关键并非在所有JSONObject's这是teamMembersArrayJSONArray avalaible。

因此,要得到它的工作从JSONObjectteamLead键访问像前值增加检查空:

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:显示您的更新代码 –