You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌套JSON数据访问问题:无法获取latlng字段值

问题分析与解决方案

从你打印的日志能明确看出来,responseJSON是一个数组,数组里的每一项才是包含markers属性的对象。你直接用responseJSON.markers或者responseJSON.markers.latlng去访问,相当于在数组本身上查找markers属性——而数组本身并没有这个属性,所以自然返回undefined。

正确的访问方式

1. 访问单个元素的latlng

如果你想获取数组中某一个元素的latlng,需要先通过数组索引定位到对应的对象,再逐层访问属性:

// 获取第一个元素的markers对象
console.log(responseJSON[0].markers);
// 获取第一个元素的latlng对象
console.log(responseJSON[0].markers.latlng);
// 单独获取纬度或经度
console.log(responseJSON[0].markers.latlng.latitude);
console.log(responseJSON[0].markers.latlng.longitude);

2. 遍历所有元素的latlng

如果要处理数组里所有元素的latlng,可以用数组的遍历方法(比如forEach):

responseJSON.forEach((item) => {
  const latlng = item.markers.latlng;
  console.log(`当前元素的经纬度:纬度${latlng.latitude},经度${latlng.longitude}`);
});

补充说明

你打印的responseJSON结构大概是这样的(简化版):

[
  { "markers": { "index": "1", "latlng": { "latitude": "40.3565", "longitude": "27.9774" } } },
  { "markers": { "index": "3", "latlng": { "latitude": "40.3471", "longitude": "27.9598" } } },
  // ...其他元素
]

可以看到,markers是数组每个子对象的属性,不是responseJSON这个数组的属性,所以必须先拿到子对象才能访问markers。

内容的提问来源于stack exchange,提问作者Engin Yilmaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:36:20