在JSON Java中解析嵌套数组

时间:2016-11-09 09:26:17

标签: java android arrays json

我想解析观众'阵列。

 String data =   {
  "meta":{
    "requests":31454,
    "timestamp":1456706180,
    "status":200,
    "message":"Request successful",
    "method_id":1129,
    "method":{

    }
  },
  "data":[
    {
      "id":3681,
      "employer":"Google",
      "date":"2016-01-05",
      "day":"January",
      "start_time":"17:00",
      "end_time":"19:00",
      "description":"Info session to discuss options at Google for majors outside of Computer Science.",
      "website":"http:\/\/www.google.com\/careers\/students",
      "building":{
        "code":"FED",
        "name":"Federation Hall",
        "room":"Main Hall",
        "latitude":43.4732,
        "longitude":-80.5485,
        "map_url":"https:\/\/uwaterloo.ca\/map\/FED?basemap=D#map=17\/43.4732\/-80.5485"
      },
      "audience":[
        "ENG - Computer",
        "ENG - Electrical",
        "ENG - Mechatronics",
        "ENG - Software",
        "ENG - System Design",
        "MATH - Combinatorics & Optimization",
        "MATH - Computer Science",
        "MATH - Pure Mathematics"
      ],
      "link":"http:\/\/www.ceca.uwaterloo.ca\/students\/hiresessions_details.php?id=3681"
    } 
      }

我从

开始
 JSONObject obj = new JSONObject(data);
        JSONArray data2 = new JSONArray(obj);

但我不确定如何让#34;观众"数据现在?我试图从data2创建另一个数组,但是这给了一个错误,所以我真的不确定如何继续?

1 个答案:

答案 0 :(得分:0)

的良好开端
JSONObject obj = new JSONObject(data);

然后,您需要获取 "data"数组,而不是从该对象生成new数组。

JSONArray data = obj.getJsonArray("data");

一旦有了数组,就可以使用常规for循环迭代它,直到i < data.length()

在迭代该数组时,您需要获得更多的JSON对象

JSONObject inner = data.getJSONObject(i);

那些有观众阵列。

JSONArray audience = inner.getJSONArray("audience");

随意访问use this site和Gson或Jackson图书馆,以帮助您进行解析工作