我想从一个JSON阵列解析这个对象:我如何通过Handler解析JSONObject属性的动态JSONArray?
{... “平均”:8.492619161922457352960767294, “符号”: “mtgoxUSD”, “低”:8.391000000000}
的JSONArray是动态的,所以有时它是数组中的第73,74或75个对象,并且数组中没有任何对象具有名称。我目前使用此代码来解析它。当我的特定对象处于第75位时它工作正常,但当它不在时会崩溃。
try {
JSONArray json = JSONfunctions2.getJSONfromURL("http://bitcoincharts.com/t/markets.json");
JSONObject forex = json.getJSONObject(75);
String btc = forex.getString("avg");
currencyBTC = Double.parseDouble(btc);
}catch(JSONException e) {
Log.e("log_tag", "Error parsing data "+e.toString());
}
是否有可能通过它的属性来识别对象,因为数组中的对象没有名称?我该如何解决这个问题?先谢谢你。
编辑:
这个有点工作,但只从阵列中的最后一个对象返回值。我如何处理这个问题,以便我可以解析我的特定对象,而不仅仅是最后一个? ...
try {
JSONArray jArray = JSONfunctions2.getJSONfromURL("http://bitcoincharts.com/t/markets.json");
String symbol = "mtgoxUSD";
for (int i = 0; i < jArray.length(); i++) {
JSONObject forex = jArray.getJSONObject(i);
String mtgoxUSD = forex.getString("symbol");
if (mtgoxUSD == symbol) {
String btc = forex.getString("avg");
double currencyBTC = Double.parseDouble(btc);
}
}
} catch (Exception e) {
Log.e("log_tag", "Error parsing data "+ e.toString());
}
打出来的'“mtgoxUSD”'如果'if'语句来'String'像我有它。我相信那就是错误的地方。但看着它,我看不出它是如何给你描述的结果...... – jnthnjns 2012-07-26 02:24:50
我想也许我可以以某种方式解析一切都变成一个ArrayList,然后从ArrayList中 – 2012-07-26 03:00:29
对不起,我看了你的最后一个注释错误得到它,当然你可以解析一个'ArrayList',只需在'for'循环外部设置Array,然后使用'add'将值添加到List内部。我以为你只想要一个价值。你原来的问题得到了回答。 – jnthnjns 2012-07-26 12:24:42