使用目标 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?的主要内容,如果未能解决你的问题,请参考以下文章

目标c从url请求中解析json

ios目标c解析json

如何在目标c中逐行解析JSON文件

在目标 c 数组上解析 web 服务的 JSON

如何在没有目标c的键的情况下解析json第一个对象?

JSON解析器json-c