如何在 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 中表示

如何在 php 7.1 中表示返回类型是当前子类型?

如何在 Rust 中表示指向 C 数组的指针?

在Delphi中 如何在字符串中表示 CTRL+ENTER 组合键?

如何在 shell if 语句中表示多个条件?

warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失