我正在尝试创建看起来像
的JSON[
{
property1 = "test1",
property2 = "test2",
},
{
property1 = "test1",
property2 = "test2",
},
...
]
到目前为止,我只能使用NSDictionary:
[
key1 = {
property1 = "test1",
property2 = "test2",
},
key 2 = {
property1 = "test1",
property2 = "test2",
},
...
]
......这不好。在NSDictionary中创建无密钥数组有简单的方法吗?
答案 0 :(得分:2)
尝试:
NSArray *objects = @[
@{ @"property1": @"test1", @"property2": @"test2" },
@{ @"property1": @"test1", @"property2": @"test2" }
];
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:objects options:0 error:&error];
您似乎使用NSDictionary
作为根对象,而不是NSArray
。
答案 1 :(得分:2)
您的JSON无效。它应该是这样的JSON数组:
[
{
property1 : "test1",
property2 : "test2",
},
{
property1 : "test1",
property2 : "test2",
},
...
]
或嵌入了其他对象的JSON对象,但在这种情况下,您需要指定属性的名称:
{
obj1 : {
property1 : "test1",
property2 : "test2",
},
obj2 : {
property1 : "test1",
property2 : "test2",
},
...
}
第一个案例映射到NSDurray的NSArray,而第二个案例映射到带有两个键(obj1,obj2,)的NSDictionary,每个键映射到NSDictionary,每个键有两个键(property1,property2)。
根据对您的问题所做的编辑判断,您需要序列化此对象,以获得所需的结构:
NSArray * dataForJSON = @[
@{
@"property1" : @"test1",
@"property2" : @"test2"
},
@{
@"property1" : @"test1",
@"property2" : @"test2"
}
];