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