2
{
 "success":true,
 "listings":
 {
   "50831582253b4acf09000000":
   {
     "id":"50831582253b4acf09000000",
     "title":"fddfds",
     "assets":[],
     "discussions":[]
   }
 },
 "displaymessage":"1 Listings Found"
}

我仍在字典和数组之间挣扎。什么会使上面的数组变成一个数组?

谢谢

4

3 回答 3

4

字典和数组之间有很大的区别。字典存储与您在实例化时指定的键相关的数据条目。例如:

NSDictionary *myDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"object1",@"key1",@"object2",@"key2", nil];

这分配/初始化一个字典并为“key1”设置“object1”,为“key2”设置“object2”,所以如果你想询问“key1”的值,你可以使用以下命令访问它。

NSLog(@"%@",[myDictionary objectForKey:@"key1"]);

字典中的对象可以是数组、字典、布尔值、数据、日期、数字和字符串。

另一方面,数组通过数组中的数据索引存储数据:

NSArray *myArray = [[NSArray alloc] initWithObjects:@"object1",@"object2",@"object3", nil];

然后,您可以通过请求访问数组中的特定数据位objectAtIndex:,例如:

NSLog(@"%@",[myArray objectAtIndex:1]);

它将返回“object2”,因为数组中的第一个索引始终为“0”。

于 2012-10-22T15:16:42.253 回答
2

检查JSON文档

JSON 数组由方括号表示

[ "object1", "object2" ]

JSON 数组在 Objective-C 中通常用NSArray. 这与新的文字语法相匹配

@[ @"object1", @"object2" ]

JSON 对象用大括号表示

{ "key" : "value" }

JSON 对象在 Objective-C 中通常用NSDictionary. 这也与新的文字语法相匹配

@{ @"key" : @"value" }
于 2012-10-22T15:51:07.313 回答
0

正如您可能知道的那样,列表中的实体或“单元格”用逗号 (,) 分隔

在序列化字典中,实体通过冒号 (:) 分解为键:值对

"success":true

其中冒号前引号中的第一部分是键,第二部分是对应于该键的值。

一个序列化的数组可能看起来像这样:

{"hello", "goodbye", "world", "words", "friendship"}

请注意,实体仍然用逗号分隔,但引号之外没有冒号。

另一个关键区别是,在字典中,键必须是唯一的,所以你不应该有这样的东西:

{"success":true, ..., "success":false}

而在数组中,元素不必是唯一的:

{"hello", "hello", "goodbye"}

希望这会有所帮助=)

于 2012-10-22T15:12:40.010 回答