使用目标 C 解析 JSON?
Posted
技术标签:
【中文标题】使用目标 C 解析 JSON?【英文标题】:parsing JSON using objective C? 【发布时间】:2009-10-30 03:42:26 【问题描述】:我花了 1 周时间学习目标 C。现在我对处理数据部分感到很困惑。 我朋友给了我一个链接 http://nrj.playsoft.fr/v3/getQuiz.php?udid=23423455&app=2 并让我编写一个类来解析这个 JSON。我不知道解析 JSON 是什么意思。但我上网查了一下。我可以理解它的基础知识,然后我实现了一段代码来解析这个 JSON。即:
-
(void)parseURL
//create new SBJSON object
SBJSON *parser = [[SBJSON alloc] init];
NSError *error = nil;
//perform request from URL
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://nrj.playsoft.fr/v3/getQuiz.php?udid=23423455&app=2"]];
// Perform request and get JSON back as a NSData object
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
// Get JSON as a NSString from NSData response
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
// parse the JSON response into an object
NSDictionary *results = [parser objectWithString:json_string error:&error];
// array just for the "answer" results
NSArray *quizes = [results objectForKey:@"quiz"];
NSDictionary *firstQuiz = [quizes objectAtIndex:0];
// finally, the name key
NSString *extract = [firstQuiz objectForKey:@"extract"];
NSLog(@"this is: %@", [extract valueForKey:@"extract"]);
这是在实现文件中,但是在头文件中我不能声明任何变量,它会打印出一些错误。我尝试运行它,没有错误,但我不确定这段代码是否正确。我的朋友让我在现有项目中编写一个类。我不知道什么需要修改,什么不需要。我现在好模糊。任何人都可以帮助我。 ? 衷心的感谢。
感谢您的回复。我也已经下载并添加了 JSON 框架。我只是不确定从哪里开始和在哪里结束,这意味着当我将 JSON 框架添加到其中时我应该执行的步骤。我可以理解语法,但我不确定我应该执行的步骤。我是这方面的新手。
【问题讨论】:
【参考方案1】:如果你支持 ios 5.0+,你应该使用内置的NSJSONSerialization。 是faster than TouchJSON。
【讨论】:
恭喜,你刚刚回答了一个将近 4 岁的问题,并且已经有了答案。虽然你是对的,但早在 2009 年 10 月,NSJSONSerialization 还没有发明。 @Fogmeister 欢迎来到 2013!接受的答案已过时,这是发布新更新答案的绝佳理由。任何来这里寻找 JSON 解析器的人现在都会知道 Apple 有一个内置的解析器。【参考方案2】:您可以只使用 TouchJSON:http://code.google.com/p/touchcode/wiki/TouchJSON
或者你可以使用这个:http://code.google.com/p/json-framework/
我确定还有其他人。我使用 TouchJSON... 它速度快并且有一个很好的 API。
【讨论】:
【参考方案3】:我建议您阅读 Ray Wenderlich 的 MapKit 教程,特别是如果您是新手。它涵盖了几个常见的 iOS 开发问题,包括解析 JSON 数据。
http://www.raywenderlich.com/2847/introduction-to-mapkit-on-ios-tutorial
“实施”部分是检索他的 JSON 提要的地方,然后在“绘制数据”中,他使用 SBJson 库来解析它。
【讨论】:
如果你从头开始学习这样的教程,你会更容易理解如何将这样的东西添加到现有项目中。以上是关于使用目标 C 解析 JSON?的主要内容,如果未能解决你的问题,请参考以下文章