Javascript TypeError:无法读取属性';0';在访问时的未定义;照片“参考资料”;所有物

Javascript TypeError:无法读取属性';0';在访问时的未定义;照片“参考资料”;所有物,javascript,arrays,json,Javascript,Arrays,Json,下面是我从GooglePlacesAPI获得的JSON。使用Json.parse(body)解析Json。“results”键是一个对象数组,我通过它循环访问照片的属性。希望代码现在更清晰。我已经粘贴了从api调用获得的有效JSON { "html_attributions" : [], "next_page_token" : "CqQCGwEAAI5PpCTJI6Qoa1CD9iA4EpJha6t0gMlZ3I3DpOIVgE1BUYh5NNI0lXRuvAltI8RhOilTNJ

下面是我从GooglePlacesAPI获得的JSON。使用Json.parse(body)解析Json。“results”键是一个对象数组,我通过它循环访问照片的属性。希望代码现在更清晰。我已经粘贴了从api调用获得的有效JSON

{
   "html_attributions" : [],
   "next_page_token" : "CqQCGwEAAI5PpCTJI6Qoa1CD9iA4EpJha6t0gMlZ3I3DpOIVgE1BUYh5NNI0lXRuvAltI8RhOilTNJggXsR3TEP2C6hoIsibEWZXnZClbEcZzes7LGqJuQ0heJWipe7RNbxq8S8zuao1HWfECs11i44WO0Luv-4bYx5GlCEj6Wl07LitkzwG4u0e4FyIHogyaShky5Awd44ZyOcqKzy7wYBr7p37j6A6PMdR7zn7cMWQKiVolfHQbFZerVJ3JJ5MiKSshocG189wPKjqJzSACE6W19LmZ7TIMB9qm7jQANNQStrsq7rYAWIBQ-UqJ_6Hv9jv1xL7eRQ9bkyR17u7xPZWfeCU69u_PQmGvuvSWNJDvNUuoI-uwLc_RhgTZp26kyzMlXwYHRIQXy13ridwzgvlBU8ez_y-WBoUcBN7UvN8Q8iuDyS_LjXEWmT_sIk",
   "results" : [
      {
         "geometry" : {
            "location" : {
               "lat" : 28.615572,
               "lng" : 77.3468
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 28.6169209802915,
                  "lng" : 77.34814898029151
               },
               "southwest" : {
                  "lat" : 28.6142230197085,
                  "lng" : 77.34545101970849
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png",
         "id" : "dea8496f678dc1f01381a85298e37a0905a3ca11",
         "name" : "Malabar Junction Restaurant",
         "opening_hours" : {
            "open_now" : true,
            "weekday_text" : []
         },
         "photos" : [
            {
               "height" : 746,
               "html_attributions" : [
                  "\u003ca href=\"https://maps.google.com/maps/contrib/117230637789134827076/photos\"\u003eSwati\u003c/a\u003e"
               ],
               "photo_reference" : "CmRaAAAArbpjr1fjNp2Fc4ww8Vkgrzzzt5aHEvACzEZFa-XCJU3Fw2JqFLSDo64jlFWwDZwdYaFP_cIgdqI37TJ25mVB2W_rtoTv_aI0LJGgnh_P4-UF7u45ZvqdM-bE4ljYD2yyEhDjv-4AWC5AKcE713GL1qAsGhQjAN2oS1KWv52f8XsjEK3Pmnv53w",
               "width" : 750
            }
         ],
         "place_id" : "ChIJx6qqqj3lDDkRcBw22oTfWgk",
         "reference" : "CmRRAAAAZBpNfAiO2G_y57bLoFTSM28MG4xUi-VAg3kJgV2ZzksdhpzySwxdPNdPP1paEIE46i70oxgLHliUcEjxalukNEyhN85J-ryRbXVVMkg4Tz-MGBGhgVur7SV5b4IFePnfEhABXu9pHswL4Up5w-k9td94GhSDs13DRQVxPOpI8iWqUbLyd_WJUg",
         "scope" : "GOOGLE",
         "types" : [ "restaurant", "food", "point_of_interest", "establishment" ],
         "vicinity" : "62, 8, Rani Jhansi Marg, Block 10, Sector 10, Noida"
      }
   ],
   "status" : "OK"
}
正在尝试像这样访问photo_引用属性

let resultJSON = JSON.parse(body);
let results = resultJSON["results"];
for (var i = 0; i < results.length; i++) { 
   let name = results[i]["name"];
   console.log(results[i].photos[0].photo_reference);
}
let resultJSON=JSON.parse(body);
让results=resultJSON[“results”];
对于(var i=0;i
下面是一个代码片段,显示更新后的代码正在运行

let resultJSON={
“html_属性”:[],
“下一页\u令牌”:"4.一个中国的一个中国的QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ9JV1XL7ERQ9BKYR17U7XPZWFECU69u_pqmgvuvswnjdvnuoi-uwLc_rhgtzp26kyzmlxwyriqxy13ridwzgvlbu8ez_y-WBoUcBN7UvN8Q8iuDyS_LjXEWmT_sIk”,
“结果”:[{
“几何学”:{
“地点”:{
“lat”:28.615572,
“液化天然气”:77.3468
},
“视口”:{
“东北”:{
“lat”:28.6169209802915,
“液化天然气”:77.34814898029151
},
“西南”:{
“lat”:28.6142230197085,
“液化天然气”:77.34545101970849
}
}
},
“图标”:”https://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png",
“id”:“dea8496f678dc1f01381a85298e37a0905a3ca11”,
“名称”:“Malabar Junction餐厅”,
“开放时间”:{
“立即开放”:没错,
“工作日文本”:[]
},
“照片”:[{
“高度”:746,
“html_属性”:[
“\u003ca href=\”https://maps.google.com/maps/contrib/117230637789134827076/photos\“\u003eSwati\u003c/a\u003e”
],
“照片参考资料”:“CMRAAAARBPJR1FJNP2FC4WW8VKGRZZT5AHEVACZEZFA-XCJU3Fw2JqFLSDo64jlFWwDZwdYaFP\u cIgdqI37TJ25mVB2W\u rtoTv\u AI0LJGNU P4-UF7u45ZvqdM-bE4ljYD2yyEhDjv-4AWC5AKCE713GL1QASGHQJAN2KW52F8XSJEK3PMN53W”,
“宽度”:750
}],
“地点id”:“CHIJX6QQJ3LDDKRCBW22OTFWGK”,
“参考文件”:“CMRRAAAZBPNFAIO2G_Y57BLOTSM28MG4QUI-VAg3kJgV2ZzksdhpzySwxdPNdPP1paEIE46i70oxgLHliUcEjxalukNEyhN85J-ryRbXVVMkg4Tz-MGBGhgVur7SV5b4IFePnfEhABXu9pHswL4Up5w-K9TD94GHSDS13DRVxPOPI8IWQUBLYD”,
“范围”:“谷歌”,
“类型”:[“餐厅”、“食品”、“兴趣点”、“场所”],
“附近地区”:“诺伊达10区10座Rani Jhansi Marg 62号、8号”
}],
“状态”:“确定”
}
让results=resultJSON[“results”];
对于(var i=0;i}
尝试
控制台.log(结果[i][“照片”][0]。照片参考)
。原因是照片参考是一个字段(不是数组索引或映射键)和
结果[i][“照片”][0]
是一个对象,这就是为什么您需要
运算符等待您回复的原因。尝试过,但它会崩溃,并出现相同的错误。TypeError:无法读取未定义的属性“0”。它在尝试访问Photoshot的第一个元素时崩溃。这显然不是实际的JSON。首先,它不会按原样解析。此外,还有不
results
@GeorgeJempty是正确的,您确实应该更新问题以包含有效的JSON。results是一个对象数组。我只是在其中循环。console.log(results[I]。photos[0]。photo_引用)同样的错误也会导致崩溃为什么不能使用方括号访问对象?^我对答案进行了编辑以澄清。你不能使用方括号访问对象的属性。@shivamkaushik我这样做了;请提供更多信息,并查看我的。关于使用方括号访问对象属性的问题,我已得到纠正,谢谢@Daedalus。p答案的艺术性是不正确的或没有帮助的,所以它被删除了。