2012-04-20 85 views
0

我使用JSONObject从一个API,例如解析嵌套的JSON:JAVA的JSONObject解析问题

{"results":[{"congress":"112","state":"NJ","num_results":"2","offset":"0","members": [{"id":"L000123","first_name":"Frank".......................... 

我无法访问使用JSONObject成员嵌套区域。
这是我的代码,有什么想法?

url= new URL("http://api.nytimes.com/svc/politics/v3/us/legislative/congress/112/senate/members.json?&state=NJ&api-key=7967107ef3c9e8d6c2f560027f87904e:17:65990356");     


      ByteArrayOutputStream urlOutputStream = new ByteArrayOutputStream(); 
      IOUtils.copy(url.openStream(), urlOutputStream); 
      String urlContents = urlOutputStream.toString(); 

      // parse the JSON object returned 
      JSONObject jsonO = new JSONObject(urlContents); 
      System.out.println(jsonO.toString()); 
      JSONObject results = jsonO.getJSONObject("results"); 
      JSONObject senators = results.getJSONObject("members"); 
+0

我没试过你的代码,因为我没有手头有你的JSON库。但它似乎结果表示一个JSON数组,其元素具有属性'members'。数组本身并不具有该属性。 – weidi 2012-04-20 02:54:05

+0

那么我将如何去访问它?提前致谢! – 2012-04-20 03:00:07

+0

如果我正确地找到你正在使用的库的api,有一个方法'getJSONArray',它会给你一个'JSONArray'对象而不是gereral'JSONObject'。然后,您可以使用索引器方法'get'来获取数组的每个元素。在这种情况下,您可能只需要第零个元素。 – weidi 2012-04-20 03:10:52

回答