Objective c 从json数据设置id属性

Objective c 从json数据设置id属性,objective-c,Objective C,因此,我试图将对象的id属性设置为从HTTP请求返回的一些json数据。我的答复如下: {“工作”: {“id”:1, “姓名”:“dave”} 此响应在NSDictionary中设置。为了将此数据设置为我的一个类,我使用: user.work.id = dictionary[@"work"].id; 但由于“id”的原因,这会产生一个错误。我对如何将此属性设置为我自己类的对象感到困惑。字典[@“work”].id的问题在于您试图在“id”类型的对象上使用点符号,因此编译器不知道它是否有效。它

因此,我试图将对象的id属性设置为从HTTP请求返回的一些json数据。我的答复如下:

{“工作”:
{“id”:1,
“姓名”:“dave”}

此响应在NSDictionary中设置。为了将此数据设置为我的一个类,我使用:

user.work.id = dictionary[@"work"].id;

但由于“id”的原因,这会产生一个错误。我对如何将此属性设置为我自己类的对象感到困惑。

字典[@“work”].id的问题在于您试图在“id”类型的对象上使用点符号,因此编译器不知道它是否有效。它是无效的,因为“id”实际上是嵌套字典中的一个键。因此,你应该做:

user.work.id = dictionary[@"work"][@"id"];


user.work.id
仍然不好。不确定它是否被允许(我希望这是一个编译器错误!),但这是一个糟糕的做法。我同意这是一个糟糕的命名,但我认为它是合法的。我希望看到它引发一个编译错误来阻止人们也这么做。重命名为类似于
identity
的名称会更好。
user.work.id = [dictionary valueForKeyPath:@"work.id"];