Objective c 按索引阅读词典
我有一个RESTAPI,它在解析JSON后返回NSDictionary中调用的内容 它被记录为:Objective c 按索引阅读词典,objective-c,nsdictionary,Objective C,Nsdictionary,我有一个RESTAPI,它在解析JSON后返回NSDictionary中调用的内容 它被记录为: 2013-04-07 23:43:25.008 MyApp[15133:c07] ( { id = 1; name = "The best of NTNU"; type = 1; }, { id = 2; name = "Forever alone"; type =
2013-04-07 23:43:25.008 MyApp[15133:c07] (
{
id = 1;
name = "The best of NTNU";
type = 1;
},
{
id = 2;
name = "Forever alone";
type = 1;
}
)
我想把第一级的dict作为我可以使用的NSDict。问题是,无论我如何尝试抓住这个(valueForKey
,objectForKey
)应用程序都会崩溃
根据memory inspector的说法,是这个NSDict[0]和[1]的“子项”,但我不知道如何找到它们。JSON实际上返回的是一个NSDictionary数组,而不是一个NSDictionary 要获取第一级,需要获取数组的第一个索引:
NSArray *json = [NSJSONSerialization ....
NSDictionary *firstLevel = json[0]; // or [json objectAtIndex:0];
JSON实际上返回的是NSDictionary的NSArray,而不是单个NSDictionary 要获取第一级,需要获取数组的第一个索引:
NSArray *json = [NSJSONSerialization ....
NSDictionary *firstLevel = json[0]; // or [json objectAtIndex:0];
这看起来像一个
NSArray
(因为没有键…),所以您可以使用objectAtIndex:
选择器访问第一个字典
NSDictionary * dict0 = [array objectAtIndex:0]
这看起来像一个
NSArray
(因为没有键…),所以您可以使用objectAtIndex:
选择器访问第一个字典
NSDictionary * dict0 = [array objectAtIndex:0]
这实际上是一个
NSDictionary的NSArray
这实际上是一个NSDictionary的NSArray
啊,是的,你是对的。这是因为我删除了json较低级别中的所有键和值,所以留下了一个NSArray,但将其定义为NSDict。根据NSJSONSerialization的文档,它应该返回一个NSDict,这取决于JSON的结构。一般来说,它会返回一本词典。啊,是的,你说得对。这是因为我删除了json较低级别中的所有键和值,所以留下了一个NSArray,但将其定义为NSDict。根据NSJSONSerialization的文档,它应该返回一个NSDict,这取决于JSON的结构。通常,它会返回一个NSDictionary。