我正在从此链接解析JSON数据:
http://twyst.in/api/v1/near/30/30
由于数据太大,我只在此处发布(问题)相关数据:
{
“ info”:“ [{\”插座\“:{\” __ v \“:1,\” _ id \“:\” 5316d59326b019ee59000026 \“,\”照片\“:[],\” twyst_meta \“:{ \“ recommend_list \”:[],\“评论\”:[]},\“ outlet_meta \”:{\“链接\”:[],\“状态\”:\“活动\”,\“帐户\“:[\” 531574eeae738d654c00000a \“,\” 535a1a1e827651ca03000122 \“]},\”属性\“:{\” dine_in \“:true,\” outdoor \“:true,\”空调_“:\”非可用\“,\”停车\“:\”可用\“,\”预订\“:\”不需要“,\” wifi \“:\”不可用\“,\”标签\“:[\ “ Pizza \”,\“ Pasta \”,\“ Italian \”,\“ Galleria \”,\“ DLF Phase 4 \”],\“ payment_options \”:[\“现金\”,\“ amex \” ,\“ visa \”,\“ master \”],\“ cuisines \”:[\“ Italian \”,\“ Pizza \”,\“ Gelato \”],\“ timings \”:\“上午11点-11 PM \“,\” cost_for_two \“:{\” min \“:3,\” max \“:4}},\”链接\“:{\” other_urls \“:[],\” youtube_url \“:\” \“,\” twitter_url \“:\” \“,\” facebook_url \“:\” https://www.facebook.com/pages/Crusty-gourmet-pizza-more/390843954384130 \“,\” website_url \“:\” \“},\” contact \“ :{\“电子邮件\”:{\“电子邮件\”:\“ bob_nugent56@yahoo.com \”,\“人\”:\“ \”},\“电话\”:{\“数字\”: \“ \”,\“座机\”:\“ 02355156616 \”,\“ reg_mobile \”:[{\“ _ id \”:\“ 4639320000e4532779b17de7 \”,\“ num \“:\” 9134000410 \“}
这不是JSON数据的结束,而是继续...
但是,当执行以下代码行时,我得到了JSONException。 e.printStackTrace()方法告诉我存在typeMismatch错误。
JSONObject object = new JSONObject(str); //1
JSONArray array = object.getJSONArray("info"); //2
我尝试用以下代码替换第2行:
JSONObject newObject = object.getJSONObject("info");
但是在这里我也遇到了同样的问题。
我已经检查了完整的数据,它是正确的,没有语法错误。
有人可以帮我解决这个问题吗?启动JSONArray之前出现双引号是否可以解决此问题?
谢谢。
最佳答案
info
不是数组或对象。它是一个字符串,恰好包含另一个数组的JSON编码表示形式。您将必须获取该字符串并通过第二个JSON解码通道运行它:
JSONArray array = new JSONArray(object.getString("info"));