我正在尝试解析Swift3中的JSON数据。当我尝试打印整个jsonResult
时,可以正常打印所有JSON文件。但是,当我尝试解析它时,我遇到了问题。
这是我的JSON文件的控制台输出:
{
city = {
coord = {
lat = "37.323";
lon = "-122.0322";
};
country = US;
id = 5341145;
name = Cupertino;
population = 58302;
};
}
这是我解析文件的代码:
if let jsonResult = try JSONSerialization.jsonObject(with: data!) as? NSDictionary{
print(jsonResult) //this prints all the file OK
if let city = jsonResult["city"] as? Dictionary<String, AnyObject>{
if let country = city["country"] as? Dictionary<String, AnyObject>{
print(country) //this is not printing anything
}
}
我尝试过稍微不同的方法,但我找不到解决方案。我无法理解问题所在。任何人都可以帮我一把吗?先感谢您。
答案 0 :(得分:3)
&#34;国家&#34;你的json中的键不是一个字典,这就是为什么你没有得到任何输出。
尝试使用以下代码
if let jsonResult = try JSONSerialization.jsonObject(with: data!) as? Dictionary<String:Any>{
print(jsonResult) //this prints all the file OK
if let city = jsonResult["city"] as? Dictionary<String, Any>{
print(city["country"]) // to check what is the output
if let country = city["country"] as? String{
print(country) //this is not printing anything
}
}
答案 1 :(得分:2)
请参阅@MartinR&#39。他是绝对正确的,基于此也是@Nishant Bhindi的答案。
警告!!!!
来自JSON ORG
字符串是零个或多个Unicode字符的序列,包含在内 双引号,使用反斜杠转义。
看来,你尝试解析的不是有效的JSON ...