2014-02-10 22 views
0

我有一個凌亂的JSON格式的字符串,像這樣:我有一個JSONObject的JSONArray,它們在兩個JSONObjects中。我如何遍歷它們並提取關鍵信息?

{ 
    "ResultSet":{ 
     "Query":"yahoo", 
     "Result":[ 
     { 
      "symbol":"YHOO", 
      "name":"Yahoo! Inc.", 
      "exch":"NMS", 
      "type":"S", 
      "exchDisp":"NASDAQ", 
      "typeDisp":"Equity" 
     }, 
     { 
      "symbol":"YAHOY", 
      "name":"Yahoo Japan Corporation", 
      "exch":"PNK", 
      "type":"S", 
      "exchDisp":"OTC Markets", 
      "typeDisp":"Equity" 
     }, 
     { 
      "symbol":"YOJ.BE", 
      "name":"YAHOO JAPAN", 
      "exch":"BER", 
      "type":"S", 
      "exchDisp":"Berlin", 
      "typeDisp":"Equity" 
     }, 
     { 
      "symbol":"YHOO.BA", 
      "name":"Yahoo! Inc.", 
      "exch":"BUE", 
      "type":"S", 
      "exchDisp":"Buenos Aires", 
      "typeDisp":"Equity" 
     }, 
     { 
      "symbol":"YOJ.SG", 
      "name":"YAHOO JAPAN", 
      "exch":"STU", 
      "type":"S", 
      "exchDisp":"Stuttgart", 
      "typeDisp":"Equity" 
     }, 
     { 
      "symbol":"YHO.HM", 
      "name":"YAHOO", 
      "exch":"HAM", 
      "type":"S", 
      "exchDisp":"Hamburg", 
      "typeDisp":"Equity" 
     }, 
     { 
      "symbol":"YHO.DU", 
      "name":"YAHOO", 
      "exch":"DUS", 
      "type":"S", 
      "exchDisp":"Dusseldorf Stock Exchange ", 
      "typeDisp":"Equity" 
     }, 
     { 
      "symbol":"YHOF.EX", 
      "name":"YAHOO", 
      "exch":"EUX", 
      "type":"S", 
      "exchDisp":"EUREX Futures and Options Exchange ", 
      "typeDisp":"Equity" 
     }, 
     { 
      "symbol":"YHO.BE", 
      "name":"YAHOO", 
      "exch":"BER", 
      "type":"S", 
      "exchDisp":"Berlin", 
      "typeDisp":"Equity" 
     }, 
     { 
      "symbol":"YA-U.TI", 
      "name":"YAHOO", 
      "exch":"TLO", 
      "type":"S", 
      "exchDisp":"TLX Exchange ", 
      "typeDisp":"Equity" 
     } 
     ] 
    } 
} 

基本上我需要創建一個通過去,並得到所有名爲「符號」的值的字符串數組。因此,對於這種情況下我會:

array[0] = YHOO 
array[1] = YAHOY 
array[2] = YOJ.BE 
... 
array[9] = YA-U.TI 

我使用Android和我試圖使用的JSONObject和JSONArray類來實現這一點,但我似乎無法找到一種方式,通過迭代內部對象數組。有人在這裏有任何想法如何做到這一點?在此先感謝

+0

將「result」作爲JSONArray獲取,然後遍歷每個成員作爲get(int)並轉換爲JSONObject。 – 323go

回答

0

嘗試通過所有成員的迭代。

ArrayList<String> list = new ArrayList<String>(); 
    try { 
     JSONObject jObject = new JSONObject(myJSONStr); 
     JSONArray jArray = jObject.getJSONObject("ResultSet").getJSONArray("Result"); 
     for(int i=0; i<jArray.length(); i++){ 
      list.add(jArray.getJSONObject(i).getString("symbol")); 
     } 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

    //In this point 'list' contains all the info you need. 
      //If you need it as an array of strings, try the following 
    String[] listArray = (String[]) list.toArray(); 

希望它有幫助。

相關問題