解析 JSON 字典时调试器中的不同类型
Posted
技术标签:
【中文标题】解析 JSON 字典时调试器中的不同类型【英文标题】:Different types in debugger when parsing JSON Dictionary 【发布时间】:2015-03-12 00:21:27 【问题描述】:我将 JSON 数组保存为
var ingredients: [Dictionary<String,AnyObject>]
JSON 数组的字典键是字符串,值可以是 Int 或 String。
然后我试图解析我的字典数组,但我在调试器中看到了一些奇怪的结果。 当“serving_count”的值为“0.5”时,调试器说它是一个_NSCFNumber,但是当它的值为“1.0”时它说它是一个_NSCFString。我不知道为什么当 JSON 显然是如下所示的字符串时它会选择数字。 谢谢
"serving_count" = "1.0";
"serving_count" = "0.5";
【问题讨论】:
【参考方案1】:调试器输出
"serving_count" = "1.0";
"serving_count" = "0.5";
并没有过多地说明数据类型。这就是字典打印到控制台的方式。如果您想查看 NSDictionary 中的实际类型,请尝试打印
NSStringFromClass(ingredient.valueForKey("serving_count").dynamicType)
检查实际类型。
【讨论】:
您好约翰,感谢您的回复。我更新了我的问题,希望更清楚。我也不再使用 NSDictionary 而是使用字典数组【参考方案2】:有趣的是,在调试器中,当我打印出 JSON 时,所有服务计数都被双引号括起来。但是,当我在 Xcode 之外加载 JSON 时,我可以清楚地看到问题所在。该服务正在发送一些值作为字符串,一些是数字!
"serving_count": "1.0",
,
"serving_count": 0.5,
【讨论】:
以上是关于解析 JSON 字典时调试器中的不同类型的主要内容,如果未能解决你的问题,请参考以下文章
Android 手机卫士--解析json与消息机制发送不同类型消息
调试器在解析 Rest API 响应 HttpClient、Xamarin Forms 时停止