如何在 iOS 中解析 json

Posted

技术标签:

【中文标题】如何在 iOS 中解析 json【英文标题】:how to parse json in iOS 【发布时间】:2015-02-11 03:06:04 【问题描述】:

这是我从 API 接收到的 json 字符串:

"incentives_and_benefits" = "\"food\":\"0\":\"\",\"commission\":\"0\":\"\",\"uniform\":\"0\":\"\",\"transport\":\"0\":\"\",\"extras\":\"0\":\"\"";

我把它分配给字典。现在我需要获取字典中的值。 我尝试使用这里给出的解决方案:How to get values from dict

这是我目前所拥有的:

    NSString *strIncentives = [[self.jobDetailDict objectForKey:@"sub_slots"] objectForKey:@"incentives_and_benefits"];
    NSData *jsonData = [strIncentives dataUsingEncoding:NSUTF8StringEncoding];

    NSError *e;
    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:nil error:&e];
    NSLog(@"DICT: %@", dict);

    NSString *food = [dict objectForKey:@"food"];
    NSLog(@"DICT: %@", food);
    NSString *commission = [dict objectForKey:@"commission"];
    NSLog(@"DICT: %@", commission);
    NSString *uniform = [dict objectForKey:@"uniform"];
    NSLog(@"DICT: %@", uniform);
    NSString *transport = [dict objectForKey:@"transport"];
    NSLog(@"DICT: %@", transport);
    NSString *extras = [dict objectForKey:@"extras"];
    NSLog(@"DICT: %@", extras);

现在我需要检查食物的值是 0 还是 1。当食物的值为 1 时,我需要获取 Hello 字符串并显示它。 (这只是一个例子)food: "1":"Hello"

    if([food isEqualToString:@""])
    
        //the string will be placed here
        NSLog(@"FOOD Available")
    

当我到达 if 语句时,我得到一个错误:

[__NSCFDictionary isEqualToString:]: unrecognized selector sent to instance

我将如何解决这个问题? 请帮助并提前感谢您。

【问题讨论】:

How can I debug 'unrecognized selector sent to instance' error的可能重复 How do I parse JSON with Objective-C的可能重复 访问 json.org 并学习 JSON 语法。只需 5-10 分钟即可学会。 How to parse JSON in ios App的可能重复 【参考方案1】:
 if([[dict objectForKey:@"food"]isEqualToString:@“”])
    NSLog(@"FOOD Available")
 

【讨论】:

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

如何在 iOS 中解析 mapquest 地理编码 JSON

如何在 ios 中解析这种类型的 JSON 响应? [复制]

如何在 Objective-C iOS 中解析 JSON

如何在ios中正确解析json?

如何在ios中解析json

当字典在iOS中没有标题时如何解析JSON?