无法解析JSON-android

无法解析JSON-android,android,json,Android,Json,我是android新手,我不明白为什么在解析JSON时会出现这种异常。请提供帮助,或建议其他选择 包含所有国家及其城市的Json文件: 上述文件的示例如下: {"China":["Guangzhou","Fuzhou","Beijing","Baotou","Hohhot","Guiyang","Yinchuan","Nanjing","Changzhou","Chuzhou","Jiaoyun","Guizhoumanzuxiang","Qingzhen","Changde","Xianni

我是android新手,我不明白为什么在解析JSON时会出现这种异常。请提供帮助,或建议其他选择

包含所有国家及其城市的Json文件:

上述文件的示例如下:

{"China":["Guangzhou","Fuzhou","Beijing","Baotou","Hohhot","Guiyang","Yinchuan","Nanjing","Changzhou","Chuzhou","Jiaoyun","Guizhoumanzuxiang","Qingzhen","Changde","Xianning","Jiaozhou","Weifang","Tai'an","Luoxi","Guoji","Guangdong","Sijiqing","Huzhou","Panjin Shi","Daqing","Jilin City","Lianyungang","Yancheng","Yuehu","Kunshan","Taicang","Lianshui","Nantong","Jiaotong","Changshu City","Xingxiangcun","Jinsha","Jiangyan","Chaigoubu","Ma'anshan","Huainan","Haibei","Shenlong","Nangxian","Rongsheng","Changfeng","Chengqiao","Jiafu","Shenzhou","Shantou","Qingyuan","Gyari","Xinshijie","Zhaoqing","Zhanjiang","Kuicheng","Taoyuan","Jincheng","Caishen","Shiyan","Liaoyang","Xingtai","Wenchang","Wanning","Qionghai","Huilongba","Dingcheng","Baodian","Wuzhishan","Chengmai","Yinggen","Ledong","Lincheng","Baisha","Changjiang","Dongfang","Changjian","Jinmao","Yangpu","Baipo","Jiefang","Danzhou","Lingshui","Haidian","Sanya","Rongjiang","Longyan","Jinghe","Zhangjiakou","Renqiu","Yaocheng","Kaifeng","Hebi","Jiaozuo","Pingdingshan","Anshan","Dandong","Haitang","Tongchuan","Ankang","Guozhen","Shangluo","Yulong","Haixing","Sanjiaocheng","Pinghu","Jinling","Fengming","Tongxiang","Puyuan","Dingqiao","Yanjiang","Wutong","Pingchuan","Dushu","Nanxun","Wuxing","Yangzhou","Hongyuan","Anji","Shangying","Deqing","Digang","Sanguan","Yuantong","Changxin","Huating","Putuoshan","Jinyuan","Dinghai","Xiangnan","Putuo","Xintian","Donghuxu","Zhuji","Jingcheng","Jiangtian","Xingchang","Jindou","Xinchang","Baiyun","Qianqing","Tianchang","Tianchi","Luzhou","Qinjiang","Tianzhu","Mingdu","Shenjiamen","Longshan","Dengbu","Xiushan","Daizhong","Longteng","Beiyuan","Taili","Choucheng","Lucheng","Chengxiang","Dongying","Gangcun","Sailing","Shifan","Yaohua","Jingyuan","Fengtai","Gaocheng","Gu'an","Shuangshipu","Li'ao","Xi'ao","Tang Xian","Tara","Li'an","Hu'an","Datang","Tumu","Shuyi","Gaoxin","Bo’ao","Baocheng","Haifu","Xiuying","Xuanzhou","Gongjiang","Huayuji","Qu'an","Fuhao","Weiyang","Laohekou","Nanshan","Chen Xian","Siting","Wuhou","Ji’an","Fuxin","Xiqu","Wangluo","Erqi","Donghong","Gaobeidian","Lianhua","Chenzhou","Dajie","Chenghua","Dongfeng","Zhu'ang","Maji","Songling","Chum","Cenyang","Hanshan","Xiaomi","Luohu","Hainan","Guangxi","Changle","Linfen","Yuanping","Jiazhuang","Heibei","Liaocheng","Huaihua","Rizhao","Fuzhou","Duyun","Tianshui","Guli","Jinhai","Chaoyang","Taixing","Fengxiang","Jinpan","Yizheng","Yunfu","Xinhui","Wenlan","Tieli","Taihe","Liuzhou","Hechi","Yunyang","Zhuxi Chengguanzhen","Heze","Shiqiaopu","Jiangbei","Shanzhuang","Danyang","Huai'an","Yantan","Guangchang","Xiguan","Xigu","Anying","Xiangtong","Guixi","Xidian","Pingliang","Pinghu","Changhe","Yangshan","Suji","Baizhang","Shuangxi","Yanming","Yiqiao","Xinxing","Dabao","Sanyuanpu","Gaobu","Linghu","Qingtong","Shuanglin","Dampu","Qi'an","Gouzhuang","Changsheng","Qianyu","Datong","Sandu","Anjiang","Huangjue","Name","Linqi","Zhanghe","Zheshang","Huadian","Kangcun","Zhangshan","Shouchang","Qiantan","Hongpan","Lin'an","Dingzhou","Jiuzong","Yuting","Guali","Jianci","Kaiyun","Chunhua","Hongwei","Shuguang","Diankou","Lidong","Fengqing","Fengqiao","Fengqi","Rongle","Huangzhai","Wuning","Yahao","Jifeng","Ancheng","Shangfang","Jiahu","Jinpu","Potang","Shangjiang","Xingqiao","Doujiang","Nyingchi County","Yangxunqiao","Chadianzi","Zhongyicun","Jialing","Jianxing","Xichong","Sanyi","Hongyan","Base","Yongxing","Nanhe","Naxi Yaozuxiang","Dongxing","Rongxian","Jinghong","Ning'er","Zhuozhou","Luquan","Li'an","Suqian","Dabu","Luoyang","Feiyun"],"Japan":["Tokyo",
我的代码:

JSONArray jsonArray = new JSONArray(jsonString);
抛出异常 其中jsonString=

例外情况是:

02-08 11:29:45.239 558-589/?E/刷卡﹕ 清除()
02-08 11:29:45.239      558-589/? 刷卡﹕ 检查x/y的向下滑动:249.0/173.0
02-08 11:29:45.279      558-589/? 刷卡﹕ 补漆事件249.0 173.0
02-08 11:29:45.279      558-589/? 刷卡﹕ 发送重播触地事件
02-08 11:29:45.329 3385-3385/com.zerotech.cricketscoring.cricketscoring D/BYD_Flex﹕ getValue()名称=@NOKIAFLEX@packageNeedData
02-08 11:29:45.509 3385-3385/com.zerotech.cricketscoring.cricketscoring D/BYD_Flex﹕ getValue()readFlexFromXml=TypedValue{t=0x0/d=0x0}
02-08 11:29:45.509 3385-3385/com.zerotech.cricketscoring.cricketscoring D/BYD_Flex﹕ getValue()名称=@NOKIAFLEX@setDataUsageReminder
02-08 11:29:45.679 3385-3385/com.zerotech.cricketscoring.cricketscoring D/BYD_Flex﹕ getValue()readFlexFromXml=TypedValue{t=0x0/d=0x0}
02-08 11:29:45.719 3385-3385/com.zerotech.cricketscoring.cricketscoring W/dalvikvm﹕ VFY:无法解析虚拟方法11351:Landroid/view/ViewGroup;。ONNESTEDSCROLACCEPTED(Landroid/视图/视图;Landroid/视图/视图;I)V
02-08 11:29:45.719 3385-3385/com.zerotech.cricketscoring.cricketscoring W/dalvikvm﹕ VFY:无法解析虚拟方法11357:Landroid/view/ViewGroup;。onStopNestedScroll(Landroid/view/view;)V
02-08 11:29:45.729 3385-3385/com.zerotech.cricketscoring.cricketscoring W/dalvikvm﹕ VFY:无法解析虚拟方法9043:Landroid/support/v7/internal/widget/ActionBarOverlayLayout;。stopNestedScroll()V
02-08 11:29:45.769 3385-3385/com.zerotech.cricketscoring.cricketscoring W/dalvikvm﹕ VFY:无法解析虚拟方法11354:Landroid/view/ViewGroup;。不动产变更(一)V
02-08 11:29:45.779 3385-3385/com.zerotech.cricketscoring.cricketscoring W/dalvikvm﹕ VFY:无法解析虚拟方法368:Landroid/content/res/TypedArray;。getChangingConfigurations()I
02-08 11:29:45.779 3385-3385/com.zerotech.cricketscoring.cricketscoring W/dalvikvm﹕ VFY:无法解析虚拟方法390:Landroid/content/res/TypedArray;。getType(I)I
02-08 11:29:45.869      701-701/? D/Swype﹕ [IME]onStartInput():false
02-08 11:29:45.919 3385-3387/com.zerotech.cricketscoring.cricketscoring D/dalvikvm﹕ GC_并发释放295K,7%释放8369K/8903K,暂停13ms+13ms,总计43ms
02-08 11:29:46.169 3385-3385/com.zerotech.cricketscoring.cricketscoring D/dalvikvm﹕ GC_FOR_ALLOC freed 133K,7%free 8542K/9095K,暂停15ms,总计15ms
02-08 11:29:46.199 3385-3385/com.zerotech.cricketscoring.cricketscoring D/dalvikvm﹕ 释放75K,8%释放8575K/9223K,暂停15毫秒,总计15毫秒
02-08 11:29:46.2993385-3387/com.zerotech.cricketscoring.cricketscoring D/dalvikvm﹕ GC_并发释放108K,9%释放8872K/9671K,暂停12ms+12ms,总计57ms
02-08 11:29:46.359 3385-3385/com.zerotech.cricketscoring.cricketscoring D/dalvikvm﹕ 所有释放162K的GC_,10%释放8710K/9671K,暂停14ms,总计14ms
02-08 11:29:46.4393385-3385/com.zerotech.cricketscoring.cricketscoring D/dalvikvm﹕ GC_FOR_ALLOC freed 243K,9%free 8831K/9671K,暂停15ms,总计15ms

02-08 11:29:46.479 3385-3387/com.zerotech.cricketscoring.cricketscoring D/dalvikvm﹕ GC\p>您的Json有一个
JSONObject
列表,每个
JSONObject
都有一个
JSONArray
作为值

因此,要解析它,您需要循环通过
JSONObject
键(中国、日本…),然后获得每个键的
JSONArray

JSONObject jObj = new JSONObject(yourJson);
Iterator<String> itr = jObj.keys(); // get the keys list (countries name)

while(itr.hasNext()) { // loop the list of countries
   String countryName = itr.next(); // get the next key (a new country name)
   JSONArray cytiesArray = jObj.getJSONArray(countryName);// get cities for the current country
}
JSONObject jObj=新的JSONObject(yourJson);
迭代器itr=jObj.keys();//获取密钥列表(国家名称)
while(itr.hasNext()){//循环国家列表
字符串countryName=itr.next();//获取下一个键(新的国家名称)
JSONArray cytiesArray=jObj.getJSONArray(countryName);//获取当前国家的城市
}

因为你们,问题得以解决,我感谢亨利和海德尔·萨迪克

有两个问题:

1) 而不是

JSONArray jsonArray = new JSONArray(jsonString);
我必须使用:

JSONObject jsonArray=新的JSONObject(jsonString)

多亏了亨利。但仅更改此项会导致类型不匹配异常,所以请遵循第二点

2) 在我的.json中有许多“” 因此,我删除了.json文件中所有空字符串的对象


感谢海德尔·萨迪克。

仍然没有否决。。。使您的json更易于访问。把它的一部分放在你的问题里。。。足以解释格式。。。最重要部分的dropbox链接不是提问的好方法。。。我只知道。。。你可能上传了恶意软件,而我没有下载。。。其他人也不应该。我已经预测过,实际上文件很大,这里显示错误。但是我已经更新了帖子,先生。我的意思是。。。足以解释格式。。。这类似于
{“country1”:[“city11”、“city12”、“city12”],“country2”:[“city21”、“city22”]}
。?JSON字符串表示一个对象,而不是数组。使用
新的JSONObject(jsonString)
可以更好地工作。我希望@Henry解决您的问题。