如何解析这个复杂(嵌套)的json数据?

时间:2011-10-19 05:34:32

标签: iphone json

任何人都可以帮我解析这个复杂的嵌套json数据吗?

我正在使用iPhone Xcode 4.3和objective-c.please提供小型演示。

{"html_attributions" : [],
   "results" : [

      {
         "geometry" : {
            "location" : {
               "lat" : 61.1820430,
               "lng" : -149.8003850
            }
         },
         "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "207c77fb1258ef8cb22abe391c4924850a1ac045",
         "name" : "Alaska Native Medical Center Rad",
         "reference" : "CoQBdwAAAG5xNU-hb4BzNd-9H8IcLHcnz8txVe2j00HjRmjInS6uYt0j4qnAhOU_FNkHSSjvZd47dVu8Vk8Vj2iuu0NDDDa3tkCK-yHbUaj1Wrg5DNFvPmou1jvsjUE6gRKUAHXXemRJTNgtDfvhnS5kNdS0c71r9Df2S_Yvu0m92z62D0TZEhACm7dSGWKcpfZ_H-zTi5BzGhRCM22q0rCD6vjD3keZfBELfn_VsA",
         "types" : [ "hospital", "health", "establishment" ],
         "vicinity" : "4315 Diplomacy Drive, Anchorage"
      }
   ],
   "status" : "OK"
}

4 个答案:

答案 0 :(得分:1)

有一个名为JSONKit的objective-c库非常好用。它会为您提供一个NSArray或NSDictionary,然后您可以从中获取数据。

https://github.com/johnezang/JSONKit

就像这样简单:

NSDictionary *unserializedData = [jsonString objectFromJSONString];

其中jsonString是您想要在NSString中解析的上面的json数据。

答案 1 :(得分:1)

对于这种复杂的JSON字符串,您不能使用google的JSON框架工作。但是要将该字符串分配给NSDictionary,您将需要该框架工作。 首先将该框架添加到您的项目中。然后将JSON.h文件添加到.m文件中。 然后使用分配该字符串如下: NSDictionary * dic = [jsonString JSONValues]; 在此行之后,您将获得三个键中字符串的所有值。 第一个键是“html_attributions”,第二个键是“result”,第三个键是“status”。 要访问第二个键的内部值,您必须将其分配给另一个NSDictionary或NSArray变量。并使用键来访问值。

它仅适用于上面提到的JSON字符串。

答案 2 :(得分:0)

为什么不为该工作使用框架?

您可以尝试使用json-framework(以前称为SBJSon)。

项目页面:https://github.com/stig/json-framework

答案 3 :(得分:0)

如果您在iPhone上可以使用各种JSON库将JSON字符串转换为NSDictionary和NSArray对象

JSON Kit是一个非常快速且轻量级的库,您可以使用它: https://github.com/johnezang/JSONKit

或者有JSON框架: http://code.google.com/p/json-framework/

此外,如果定位iOS 5设备,Apple还包含了自己的JSON解串器。看一下NSJSONSerialization类

https://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html