【问题标题】:How to extract the distance from a Google Directions JSON file on the iphone如何从 iPhone 上的 Google Directions JSON 文件中提取距离
【发布时间】:2012-02-15 00:46:00
【问题描述】:

我很难从我从 Google 路线请求中获得的 JSON 文件中提取我需要的单个值。

发送请求后,我得到类似的东西:

{
   "routes" : [
      {
         "bounds" : {
            "northeast" : {
               "lat" : 31.831330,
               "lng" : 34.834710
            },
            "southwest" : {
               "lat" : 31.25299000000001,
               "lng" : 34.653460
            }
         },
         "copyrights" : "Map data ©2012 Mapa GISrael",
         "legs" : [
            {
               "distance" : {
                  "text" : "85.6 km",
                  "value" : 85613",
               },

但我唯一想要的是距离值(路线/腿/距离/值), 有谁知道如何从 JSON 文件中提取这个值?

【问题讨论】:

    标签: iphone objective-c json google-maps-api-3


    【解决方案1】:

    首先,这似乎不是格式良好的JSON,在距离值之后有一个试用“。”

    大多数 JSON 框架都会为您提供最合适类型的对象。字典将被转换为 NSDictionary,列表将被转换为 NSArray。

    要获得上述 JSON 中的路由距离,您需要使用众多库之一将 JSON 解析为 NSDictionary,然后您可以执行以下操作:

    NSNumber *distance = [[[[[[parsedDict objectForKey:@"routes"] objectAtIndex:0] objectForKey:@"legs"] objectAtIndex:0] objectForKey:@"distance"] objectForKey@"value"];

    看看这是否有效。

    【讨论】:

    • 我以前从未使用过json,我对它的了解和经验非常少,你能解释一下我如何区分JSON列表和字典吗?
    • JSON 是一种对象表示法。 { 和 } 之间的任何内容都是字典。它由引用对象(数字、字符串、字典或数组、布尔值、空值)的键组成。数组是对象的有序列表(对象定义见上文)。数组是 [ 和 ] 之间的任何东西。因此,要区分列表/数组和字典,请查看它们周围的内容。 [] 是数组,{} 是字典。如需更多信息,请访问此处:json.org
    • 查看 TouchJSON 获取 json 解析库的示例
    • 你太棒了!它就像一个魅力!我整晚都在尝试这样做,你用 2 行解决方案解决了它,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2015-07-02
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多