ios开发——如何做JSON解析器?

Posted

技术标签:

【中文标题】ios开发——如何做JSON解析器?【英文标题】:ios development - How to do JSON parser? 【发布时间】:2013-05-19 00:58:26 【问题描述】:

我是 ios 开发新手。现在我从服务器得到一个 JSON 文件。

我使用 NSDictionary 来获取对象。当我调试时,我可以获得“名称”、“地址”值。

但我不知道如何从“推荐”对象中获取所有“菜”元素?在java开发中,我知道recommendation是一个对象,而“dish”是一个数组元素。但我不知道ios中发生了什么。


      "results": [
        
          "name": "ollise",
          "address": "columbia university",
          "geo": [
            
              "coordinates": 40
            ,
            
              "coordinates": 70
            
          ],
          "logo": "http:\/\/a0.twimg.com\/profile_images\/3159758591\/1548f0b16181c0ea890c71b3a55653f7_normal.jpeg",
          "recommendation": [
            
              "dish": "dish1"
            ,
            
              "dish": "dish2"
            
          ],

        
      ]
    

顺便说一句,在 JSON 中,我将图像的 URL 存储在“logo”中,但调试时无法获取该值。我应该使用一些特殊的格式吗?

[Restaurant setname:[Dict objectForKey:@"name"]] // I could get name
[Restaurant setlogo:[Dict objectForKey:@"logo"]]   // I can get nothing!

【问题讨论】:

检查我的方法here。它干净、通用且不易出错 【参考方案1】:

这就是方法

NSDictionary *response = [NSJSONSerialization JSONObjectWithData:yourData options:NSJSONReadingMutableLeaves error:nil];
NSDictionary *results = [[response objectForKey:@"results"] objectAtIndex:0];
NSString *name = [response objectForKey:@"name"];
//... get other objects
NSArray *recommendation = [results objectForKey:@"recommendation"];
NSDictionary *recommendation1 = [recommendation objectAtIndex:0];
NSDictionary *recommendation2 = [recommendation objectAtIndex:1];
NSString *dish = [recommendation1 objectForKey@"dish"];
NSString *dish1 = [recommendation2 objectForKey@"dish"];
[Restaurant setname:name];
NSString *logo = [results objectForKey:@"logo"];
[Restaurant setlogo:logo];

results 与 JSON 中的字典相同。将带有大括号 () 的任何内容视为 NSDictionary,将括号 ([]) 视为 NSArraydish 不是数组元素,它是作为数组元素的字典中的键。

【讨论】:

以上是关于ios开发——如何做JSON解析器?的主要内容,如果未能解决你的问题,请参考以下文章

一起写一个JSON解析器

在 iOS 中解析 JSON 与解析 XML

iOS开发之JSON格式数据的生成与解析

iOS中的json解析[关闭]

Cocoa 的 JSON 解析器

iOS开发——XML/JSON数据解析