解析JSON字典时调试器中的不同类型

时间:2015-03-12 00:21:28

标签: ios json swift casting nsdictionary

我将JSON数组保存为     var ingredients: [Dictionary<String,AnyObject>]

JSON数组的字典包含字符串,以及可以是Int或String的值。

然后我试图解析我的字典数组,但我在调试器中看到了一些奇怪的结果。 当&#34; serving_count&#34;的值是“0.5”调试器说它是_NSCFNumber,但是当值为“1.0”时它表示它是_NSCFString。我不知道为什么当JSON显然是一个字符串时它会选择数字,如下所示。 谢谢

{
 "serving_count" = "1.0";
}
{
 "serving_count" = "0.5";  
}

2 个答案:

答案 0 :(得分:1)

调试器输出

{
 "serving_count" = "1.0";
}
{
 "serving_count" = "0.5";  
}

没有说明数据类型。这就是字典如何打印到控制台。如果要查看NSDictionary中的实际类型,请尝试打印

NSStringFromClass(ingredient.valueForKey("serving_count").dynamicType)

检查实际类型。

答案 1 :(得分:0)

有趣的是,在我打印出JSON的调试器中,所有的serving_counts都被双引号括起来。但是,当我在Xcode之外加载JSON时,我可以清楚地看到问题。该服务正在发送一些值作为字符串,一些是数字!

        {

            "serving_count": "1.0", 

        }, 
        {

            "serving_count": 0.5, 
          }