2015-10-28 46 views
2

我正在使用Google Maps API,并从Google获取响应。只需要获得距离“文本”值,例如57.6英里,持续时间“文本”的价值是从JSON返回的“1小时和1分钟”。在angularjs中解析深JSON对象

{ 
 
    "destination_addresses" : [ "blah blah" ], 
 
    "origin_addresses" : [ "some address" ], 
 
    "rows" : [ 
 
     { 
 
     "elements" : [ 
 
      { 
 
       "distance" : { 
 
        "text" : "57.6 mi", 
 
        "value" : 92652 
 
       }, 
 
       "duration" : { 
 
        "text" : "1 hour 1 min", 
 
        "value" : 3664 
 
       }, 
 
       "status" : "OK" 
 
      } 
 
     ] 
 
     } 
 
    ], 
 
    "status" : "OK" 
 
}

我曾尝试通过使用点符号和键值对解析出来,但我能得到最深的是越来越“行” - 这回我Object对象。

+5

你'rows'其内部具有一个数组(一元)的距离。所以你可能需要'rows [0] .elements [0] .distance.text' – Claies

回答

1

@Claies打我给它,你可以使用data.rows[0].elements[0].distance.text

var data = { 
 
    "destination_addresses": ["blah blah"], 
 
    "origin_addresses": ["some address"], 
 
    "rows": [{ 
 
    "elements": [{ 
 
     "distance": { 
 
     "text": "57.6 mi", 
 
     "value": 92652 
 
     }, 
 
     "duration": { 
 
     "text": "1 hour 1 min", 
 
     "value": 3664 
 
     }, 
 
     "status": "OK" 
 
    }] 
 
    }], 
 
    "status": "OK" 
 
} 
 

 
document.write(data.rows[0].elements[0].distance.text)

+0

谢谢;完美地工作。 –

+0

同样的道理,在这个语法中,data.rows [0] .elements [0] .distance.text,如果源中的“rows”是别的东西,例如'foo',那么它就是数据.foo [0] .elements [0] .distance.text,还是它是一个语法的东西? –

+0

是的,那么它会是'data.foo [0] .elements [0] .distance.text' – Jaco