【问题标题】:I have a JSONArray of JSONObjects which are inside two more JSONObjects. How can I iterate through them and extract key information?我有一个 JSONObjects 的 JSONArray,它们位于另外两个 JSONObjects 中。我如何遍历它们并提取关键信息?
【发布时间】:2014-02-10 22:39:13
【问题描述】:

我有一个凌乱的 JSON 格式字符串,如下所示:

{
   "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"
         }
      ]
   }
}

基本上我需要创建一个字符串数组,它会通过并获取所有名为“symbol”的值。所以对于这种情况,我会:

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

我正在使用 Android,我正在尝试使用 JSONObject 和 JSONArray 类来实现这一点,但我似乎无法找到一种方法来遍历对象的内部数组。这里有谁知道如何做到这一点?提前致谢

【问题讨论】:

  • 以 JSONArray 形式获取“结果”,然后以 get(int) 的形式遍历每个成员并转换为 JSONObject。

标签: android json


【解决方案1】:

尝试遍历所有成员。

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();

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    相关资源
    最近更新 更多