我有一个JSON
{
"destination_addresses" : [ "14 Mission St, San Francisco, CA 94105, USA" ],
"origin_addresses" : [ "23 Mission St, San Francisco, CA 94103, USA" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "1.3 mi",
"value" : 2060
},
"duration" : {
"text" : "7 mins",
"value" : 444
},
"duration_in_traffic" : {
"text" : "6 mins",
"value" : 344
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
我一直在尝试访问duration_in_traffic的“text”值并将该值存储到变量中。由于某种原因,我得到的值是未定义的。
var hold = JSON.parse(body.rows.elements.duration.text);
为什么我不能像这样接触孩子?
答案 0 :(得分:1)
您有嵌套数组,因此您需要通过索引访问数组中的元素。
var hold = body.rows[0].elements[0].duration_in_traffic.text;
答案 1 :(得分:0)
首先你需要解析JSON字符串(如果它是一个字符串)然后你可以访问它...假设body
是包含字符串的var,你会做
var hold = JSON.parse(body).rows[0].elements[0].duration.text;
或
var obj = JSON.parse(body);
var hold = obj.rows[0].elements[0].duration.text;
答案 2 :(得分:0)
JSON.parse不解析json字符串的一部分。例如,如果你的json字符串存储在body中,你需要先解析它:
var jsonObj = JSON.parse(body);
这将为您提供一个javascript对象,然后您可以像尝试一样访问该对象的属性。
var hold = body.rows[0].elements[0].distance.text; //similar to @js91
希望有所帮助!