Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSON解析问题?_Java_Android_Json - Fatal编程技术网

Java JSON解析问题?

Java JSON解析问题?,java,android,json,Java,Android,Json,我正在尝试解析android应用程序的json 其格式如下: "ticker_24h":{ "total":{ "last":24171.580293457908, "high":30808.7, "low":21159.009, "vol":864.2217252755704, "vwap":23665.865289000638, "money":20452554.930199366, "trades":6463 }

我正在尝试解析android应用程序的json

其格式如下:

"ticker_24h":{
  "total":{
     "last":24171.580293457908,
     "high":30808.7,
     "low":21159.009,
     "vol":864.2217252755704,
     "vwap":23665.865289000638,
     "money":20452554.930199366,
     "trades":6463
  },
  "exchanges":{
     "NEG":{
        "last":24500,
        "open":23125.08,
        "high":24630,
        "low":22850.04,
        "vol":431.26271897999953,
        "vwap":24037.00642046651,
        "money":10366264.745030094,
        "trades":1572
     },
     "MBT":{
        "last":23893.87002,
        "open":22880,
        "high":24161.57992,
        "low":22700,
        "vol":102.92291203000005,
        "vwap":23372.09484545152,
        "money":2405524.0617352244,
        "trades":1835
     }
   }    }
到目前为止,我有这个,但我得到了一个关于logcat的json解析错误

JSONObject jsonObj = new JSONObject(jsonStr);

                // Getting JSON Array node
                JSONObject ticker = jsonObj.getJSONObject("ticker_24h");
                JSONArray exchanges = ticker.getJSONArray("exchanges");

                // looping through All exchanges
                for (int i = 0; i < exchanges.length(); i++) {
                    JSONObject e = exchanges.getJSONObject(i);

                    String name = e.names().getString(i);
                    String price = e.getString("last");

                    // tmp hash map for single exchange
                    HashMap<String, String> exchange = new HashMap<>();

                    // adding each child node to HashMap key => value
                    exchange.put("name", name);
                    exchange.put("price", price);

                    // adding exchange to exchange list
                    exchangeList.add(exchange);
                }
JSONObject jsonObj=新的JSONObject(jsonStr);
//获取JSON数组节点
JSONObject ticker=jsonObj.getJSONObject(“ticker_24h”);
JSONArray exchanges=ticker.getJSONArray(“exchanges”);
//在所有交易所循环
for(int i=0;ivalue
交易所。卖出(“名称”,名称);
外汇卖出(“价格”,价格);
//将exchange添加到exchange列表
exchangeList.add(exchange);
}

理想情况下,我需要一个名为name的字符串和一个名为price的字符串,其中包含这些键中的每个“最后”值。

试试这段代码。我正在使用迭代器循环交换,交换的名称可以通过
iterator.next()检索。


朋友。。Exchange是JSONObject而不是JSONArray。。这就是你的代码失败的原因。。
JSONObject exchanges = ticker.getJSONArray("exchanges");
 for (Iterator i = exchanges.keys(); i.hasNext(); ) {
  String keys = (String) i.next();
  Util.logRanjith("Exchange name is " + keys);
  JSONObject temp = (JSONObject) jsonObject.get(keys);
  String last=temp.get("last").toString();
}