【问题标题】:How to parse JSON multi-array如何解析 JSON 多数组
【发布时间】:2013-06-03 06:14:47
【问题描述】:

我需要解析Google Maps API提供的JSON文件 然后我使用 AFNetworkingRequestHow 来获取 JSON 响应。 我建立了这本字典:

    NSDictionary *jsonDict = (NSDictionary *) JSON;
    NSArray *rows = [jsonDict objectForKey:@"rows"];

但是现在,我怎样才能到达 duration 标签的第一个 value 字段?

要解析的 JSON 文件:

{
"destination_addresses" : [ "San Francisco, CA, USA", "Victoria, BC, Canada" ],
"origin_addresses" : [ "Vancouver, BC, Canada", "Seattle, WA, USA" ],
"rows" : [
   {
      "elements" : [
         {
            "distance" : {
               "text" : "1,527 km",
               "value" : 1527251
            },
            "duration" : {
               "text" : "15 hours 0 mins",
               "value" : 54010
            },
            "status" : "OK"
         },
         {
            "distance" : {
               "text" : "112 km",
               "value" : 111906
            },
            "duration" : {
               "text" : "3 hours 1 min",
               "value" : 10885
            },
            "status" : "OK"
         }
      ]
   }   
}

【问题讨论】:

标签: ios json afnetworking afjsonrequestoperation


【解决方案1】:

试试

NSDictionary *jsonDict = (NSDictionary *) JSON;;

NSArray *rows = jsonDict[@"rows"];
NSDictionary *row = rows[0];

NSArray *elements = row[@"elements"];
NSDictionary *element = elements[0];

NSDictionary *duration = element[@"duration"];
NSInteger value = [duration[@"value"] integerValue];

【讨论】:

    【解决方案2】:
    [json objectForKey:@"elements"]
    

    是一个 NSArray。不能直接用数组初始化 NSDictionary。

    (在 JSON 中,{ 和 } 表示键值对,如 NSDictionary,而 [ 和 ] 分隔有序列表,如 NSArray,这就是映射按原样完成的原因......)

    以下认为您可以了解开发时间,因此可能会有很大帮助。

    【讨论】:

    • 抱歉,NSDictionary 没有用数组初始化。
    • 为此,您需要从数组中获取第一个对象,然后应用 objectForKey。
    【解决方案3】:

    您可以使用以下代码:

    NSString *valueString = [[[[[rows objectAtindex:0]objectForKey:@"elements" ]objectAtindex:0]objectForKey:@"duration"] objectForKey:@"value"];
    
    //if you want integer value
    NSInteger value = [valueString integerValue];
    

    【讨论】:

      猜你喜欢
      • 2014-08-05
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 2013-12-29
      相关资源
      最近更新 更多