0
JSON INPUT(我已剪切并粘贴它,以便可能在括号中有一些错误)。解析json抛出null对象
{"results":{"quote":[{"date":"2010-03-10","Date":"2010-03-10","Open":"16.51","High":"16.94","Low":"16.51","Close":"16.79","Volume":"33088600","Adj_Close":"16.79"},
{"date":"2010-03-09","Date":"2010-03-09","Open":"16.41","High":"16.72","Low":"16.40","Close":"16.53","Volume":"20755200","Adj_Close":"16.53"},
{"date":"2010-03-08","Date":"2010-03-08","Open":"16.32","High":"16.61","Low":"16.30","Close":"16.52","Volume":"30554000","Adj_Close":"16.52"},
{"date":"2010-03-05","Date":"2010-03-05","Open":"15.89","High":"16.38","Low":"15.89","Close":"16.06","Volume":"21415000","Adj_Close":"16.06"},
{"date":"2010-03-04","Date":"2010-03-04","Open":"15.55","High":"15.85","Low":"15.52","Close":"15.81","Volume":"22906000","Adj_Close":"}]}
Java代码
System.out.println(inputLine1);
JSONObject json = (JSONObject) JSONSerializer.toJSON(inputLine1);
JSONObject pilot = json.getJSONObject("results");
JSONArray jsonMainArr = pilot.getJSONArray("quote");
for (int i = 0; i < jsonMainArr.size(); i++)
{ // **line 2**
JSONObject childJSONObject = jsonMainArr.getJSONObject(i);
String date = childJSONObject.getString("date");
String Date=childJSONObject.getString("Date");
String Open=childJSONObject.getString("Open");
String Close=childJSONObject.getString("Close");
String High=childJSONObject.getString("High");
String low=childJSONObject.getString("Low");
String Volume=childJSONObject.getString("Volume");
String Adj_close=childJSONObject.getString("Adj_Close");
System.out.println(date);
System.out.println(Open);
}
它说,空对象。我究竟做错了什么。
1)什么是确切的例外,哪一行 2)确保您的json输入格式正确 – I82Much 2012-03-30 06:20:05
您的JSON字符串末尾缺少''',请更正。 – Subodh 2012-03-30 06:20:18
是的,JSON格式错误。尝试将其粘贴到jsonlint.com并确保其验证。我已修改它以使其生效 - http://pastebin.com/W9rkAi7k – I82Much 2012-03-30 06:22:46