如何在 Objective C 中表示当前的 JSON 模式?
Posted
技术标签:
【中文标题】如何在 Objective C 中表示当前的 JSON 模式?【英文标题】:How can I represent current JSON scheme in Objective C? 【发布时间】:2011-12-13 00:47:46 【问题描述】:我脑子里的一切都搞砸了。枚举、NSObject、自定义接口等等…… 我只需要在 Objective C 中声明数据类型来表示这个 JSON 集合:
"firstName": "John",
"lastName" : "Smith",
"age" : 25,
"address" :
"streetAddress": "21 2nd Street",
"city" : "New York",
"state" : "NY",
"postalCode" : "10021"
,
"phoneNumber":
[
"type" : "home",
"number": "212 555-1234"
,
"type" : "fax",
"number": "646 555-4567"
]
这是来自*** JSON 文章的示例。所以我需要解释一下如何将所有这些数据放入集合中(或自定义类型或其他东西,我不知道)。
例如,我需要 1000 个“电话簿”集合实例来存储和更改关于 1000 人的信息。我需要知道我该怎么做。
【问题讨论】:
【参考方案1】:名字和地址的例子:
NSError* error;
NSDictionary* json = [NSJSONSerialization
JSONObjectWithData:data
options:kNilOptions
error:&error];
NSString *firstname = [json objectForKey:@"firstname"];
NSDictionary *address = [json objectForKey:@"address"];
更多:http://caydenliew.com/2011/11/json-in-ios-5/
【讨论】:
这是什么意思?我不善于发现代码中的错误,因为我只是在学习。但是你能解释一下这段代码吗:NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
那个函数就是把json数据解码成objective-c对象。 “数据”实际上是来自 json 字符串的 json 数据。您将 json 字符串编码为如下数据: NSData* data=[str dataUsingEncoding:NSASCIIStringEncoding];然后使用 NSJSONSerialization 解码 Json 对象。
我无法让它工作。我有类似 No know class method for selector 'JSONObjectWithData:' 之类的错误。我试图将我的 returnData (NSData) 与 json 数据一起使用进行解析。没有成功。
你用的是IOS5吗? NSJSONSerialization 仅在 IOS5 及以后支持,如果你在 IOS4.3 及以下,你可以使用库SBSJSON
是的,我使用的是 iOS5。也许你可以做一个简单的项目来展示这个?我在您的文章中没有找到指向 github 的链接。这对我来说可能是最简单的方法。以上是关于如何在 Objective C 中表示当前的 JSON 模式?的主要内容,如果未能解决你的问题,请参考以下文章
属性不能被标记为@NSManaged,因为它的类型不能在 Objective-C 中表示
在Delphi中 如何在字符串中表示 CTRL+ENTER 组合键?
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失