具有id属性的对象的NSJSONSerialization

时间:2013-07-13 22:00:32

标签: objective-c

所以我试图做一个返回一些Json的GET请求。从此请求返回的json具有id属性,因此我使用NSJSONSerialization来解析json的类应该具有id属性。由于id在objective-c中保留,因此我不能将其作为我的类中的属性包含在内。基本上,我的问题归结为我应该怎么做以确保id属性被正确解析为我的类的对象。

2 个答案:

答案 0 :(得分:4)

是的,id是一个保留的关键字(虽然,正如Josh指出的那样,你可以将它用作变量名称,他说这是一个坏主意),但它可以仍被用作NSDictionary中的密钥。例如,如果您的JSON看起来像:

{ "id" : "23432423", "name" : "Jason Boggess" }

然后您可以按如下方式解析它:

NSError *error = nil;
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
if (error) {
    NSLog(@"%s: JSONObjectWithData error: %@", __FUNCTION__, error);
    return;
}
NSString *identifier = dictionary[@"id"];
NSString *name = dictionary[@"name"];

答案 1 :(得分:3)

如果你通过了

{
    id: 123,
    name: "Chris"
}

NSJSONSerialization作为NSData对象,您将获得一个NSDictionary,其中包含NSString个值为@"id"且值为{{1}的两个键此时,您可以从@"name"键中获取值,并将其传递给Objective-C模型上的属性,该属性的名称不是id。一个例子是id