Java JSON解析问题?
我正在尝试解析android应用程序的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 }
"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();
}