2012-04-20 191 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

回答