【问题标题】:How can I represent current JSON scheme in Objective C?如何在 Objective C 中表示当前的 JSON 模式?
【发布时间】: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 人的信息。我需要知道我该怎么做。

【问题讨论】:

    标签: objective-c ios xcode json cocoa-touch


    【解决方案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 的链接。这对我来说可能是最简单的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多