在 Objective C (iOS) 中解析 JSON

Posted

技术标签:

【中文标题】在 Objective C (iOS) 中解析 JSON【英文标题】:Parsing JSON in Objective C (iOS) 【发布时间】:2012-07-06 12:53:12 【问题描述】:

我在 Objective C 中解析 JSON 字符串时遇到问题: 我的 JSON:

"messages":["nick":"Tim","message":"Hallo","time":"06.07.2012 13:26:41"]

我的目标 C 代码:

NSError *error = nil;
NSData *data = [NSData dataWithContentsOfURL:@"..URL.."];
NSArray *messages = [data objectForKey:@"messages"];
NSDictionary *json = [NSJSONSerialization
                           JSONObjectWithData:messages
                                      options:NSJSONReadingMutableLeaves
                                        error:&error];
NSString *nick = [json objectForKey:@"nick"];
NSString *message = [json objectForKey:@"message"];

但这不起作用,我不知道该怎么办!

【问题讨论】:

认为您在此处混淆了代码。您正在对 NSData 对象调用 objectForKey: 那里实际上看不到问题。当您说“不起作用”时,您是什么意思?有错误吗?结果不正确?你试过什么?如果您需要帮助,请提供更多信息。 我需要 NSString 而不是 NSData 什么的??? 在使用NSJSONSerialization 之前,您在NSData 上调用objectForKey:。如果在这种情况下messages 不是nil,我会感到惊讶。此外,一旦代码被翻转,ahwulf 的答案就是正确的。 【参考方案1】:

您的 JSON 是字典数组的字典,即 []

NSArray *messages = [json objectForKey:@"messages"];
NSString* nick = [[messages objectAtIndex:0]objectForKey:@"nick"]

【讨论】:

以上是关于在 Objective C (iOS) 中解析 JSON的主要内容,如果未能解决你的问题,请参考以下文章

Objective C 如何解析这个 NSString

来自 NSMutableArray 的 Objective C JSON 解析

如何解析 JSON 响应并在 Objective C 中使用它?

如何在Objective C中使用XML解析发布带有特殊字符和泰语的字符串?

Objective-C04-第一个OC程序解析

如何在 Objective-C iOS 中解析 JSON