Android JSONObject如何获得一个JSONObject

时间:2014-01-04 23:33:46

标签: android json

我有JSONObject,我想得到8个对象A,B,C ...... 我的json字符串:

{ “匹配”:{ “A”:[{ “TEAM1”: “俄罗斯”, “TEAM2”: “法国”, “时间”: “00:00:00”, “time0_90”​​: “20” ,“得分”:“0:0”,“体育场”:“马拉卡纳”,“裁判员”:“参考”,“团体”:“A”},{“team1”:“葡萄牙”,“team2”:“洪都拉斯“,”时间“:”00:00:00“,”time0_90“:”60“,”得分“:”0:2“,”体育场“:”“,”裁判“:”“,”组“ : “A”}]}, “成功”:1} { “匹配”:{ “B”:[{ “TEAM1”: “巴西”, “TEAM2”: “西班牙”, “时间”:“00:00 :00“,”time0_90“:”3“,”得分“:”1:0“,”体育场“:”“,”裁判“:”“,”组“:”B“}]},”成功“ :1} { “匹配”:{ “C”:[]}, “成功”:0} { “匹配”:{ “d”:[]}, “成功”:0} { “匹配”:{” E “:[]},” 成功 “:0} {” 匹配 “:{” F “:[]},” 成功 “:0} {” 匹配 “:{” G “:[]},” 成功” :0} { “匹配”:{ “H”:[]}, “成功”:0}

       JSONObject jsonResponse = new JSONObject(jsonResult);
       JSONArray jsonMathes = jsonResponse.optJSONArray("matches"); 
   // ????????

1 个答案:

答案 0 :(得分:0)

您的回复结构是:

JSONObject
key:value
JSONObject (key: "Matches")
    JSONArray (key: "A")
        JSONObject,
            key:value,
            key:value,
            etc...
        JSONObject

要访问A,请按以下步骤操作:

  1. 从您的回复中创建JSONObject:

    JSONObject jsonResponseObj = new JSONObject(jsonResponse);
    
  2. 获取密钥“匹配”的JSONObject

    JSONObject jsonMatches = jsonResponseObj.getJSONObject("Matches");
    
  3. 此对象包含键“A”的JSONArray,所以让我们获取该数组:

    JSONArray jsonArrayA = jsonMatches.optJSONArray("A");
    
  4. 对于你的回复,你在这个数组中有2个JSONObjects,所以首先,让我们声明并初始化它们:

    //two JSONObjects
    JSONObject[] jsonObjects = new JSONObject[jsonArrayA.length()];
    
    //go through the array of JSONObjects and fetch them
    for (int i=0; i < jsonObjects.length; i++) {
        jsonObjects[i] = jsonArrayA.getJSONObject(i);
    }
    
    • 您现在在jsonArrayA
    • 中拥有A作为JSONArray
    • A包含2个JSONObjects,你可以在jsonObjects [0]和josnObjects [1]
    • 中使用它们
    • 如果你想获取那些jsonObjects的内容,只需使用键获取它,例如:

      String team1Obj1 = jsonObjects[0].getString("team1");   // will contain 'Russia'
      String team2Obj2 = jsonObjects[1].getString("team2");   // will contain 'Honduras'
      
      String stadium1 = jsonObjects[0].getString("stadium");  // will contain 'Maracana'