ios目标c解析json

Posted

技术标签:

【中文标题】ios目标c解析json【英文标题】:ios objective c parsing json 【发布时间】:2011-12-06 22:09:47 【问题描述】:

试图解析这个 json,但似乎无法弄清楚。

description = "描述变体 1"; ID = 4; 价格 = "25.0"; , description = "变体 2 描述"; ID = 5; 价格 = "50.0"; , description = "变体 3 描述"; ID = 6; 价格 = "75.0";

这是我的代码,但我在 NSLog 上获得了 SigAbt:

- (NSMutableArray *) getVariants:(NSString *)variantJson 

    NSMutableArray *variants = [[NSMutableArray alloc] init];
    NSLog(@"Variant JSON: %@", variantJson);

    NSArray *vars = [variantJson valueForKeyPath:@"variants"];

    for (id var in vars) 
    
        NSLog(@"description: %@",[var objectForKey:@"description"]);

    

    return variants;

传入变量的json:variantJson就是上面贴出来的JSON。

【问题讨论】:

您发布的 JSON 字符串无效。您可以在jsonlint.com 检查您的 JSON 的有效性。检查其他答案以获取有关如何解析它的信息:) 【参考方案1】:

ios 不会这样透明地解析 JSON;你需要通过一个实际的 JSON 解析器库来运行你的字符串,比如SBJson。 (BSD 许可)如果您的目标是 OS 5 或更高版本,您也可以使用内置的 NSJSONSerialization。

【讨论】:

【参考方案2】:

那里没有解析 JSON 的代码。 Objective-C 和 Cocoa 没有用于将 JSON 字符串自动解析为对象和字典的内置机制,valueForKeyPath 用于获取符合 KVC 的 Objective-c 类的属性值(在层次结构内)。

为了获得嵌套的NSDictionary'ies 和NSArray's,您需要使用一些第三方库或编写自己的代码。 查看JSON page 的库列表。

【讨论】:

以上是关于ios目标c解析json的主要内容,如果未能解决你的问题,请参考以下文章

JSON解析器json-c

使用目标 C 解析 JSON?

目标c从url请求中解析json

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

如何在ios目标c中过滤Json数据

如何使用目标 C 解析 JSON 并获取特定值? [复制]