如何解决访问JSON数据后为什么会得到[object Object]?
我正在执行一个简单的GET请求,并用一些数据填充网页。除包含两个数组的“地址”外,其他所有行均有效,在我的网页上,它打印出“ [对象对象]”而不是数据。这是JSON(格式不正确的道歉)的示例:
data: Array(7)
0:
addresses: Array(2)
0:
city: "Houghton"
line1: "800 East Lakeshore Drive"
line2: ""
line3: ""
postalCode: "49931"
stateCode: "MI"
type: "Physical"
原始:对象
这是我尝试访问“地址”的代码块:
for (let i = 0; i < parkData.length; i++) {
$("#results-list").append(`<h2>${parkData[i].fullName}</h2>
<p>${parkData[i].addresses[0]}</p>
<a href=${parkData[i].directionsUrl}>Directions</a><br>
<a href=${parkData[i].url}>Website</a>
<p>${parkData[i].description}</p>
就像我在上面说的那样,所有其他行都起作用,但是当我尝试获取地址的第一个索引时,我只是得到了奇怪的对象响应。有任何想法吗?谢谢!
解决方法
[object Object]
表示它不是字符串,而是一个对象(可能)具有作为该对象的属性的地址,即,您需要访问某些属性(而不是parkData[i].addresses[0]
)(我不能告诉它)从您的代码中,因为您没有显示从JSON获得的整个对象),例如:
const {city,line1} = parkData[i].addresses[0].city
const fullAddress = `City: {city},Address: {line1}`
然后只有在构造地址之后,您才将其作为fullAddress
这是因为您需要确定某些属性。仔细检查每个迭代,您会发现您正在附加一个对象。我认为您并未粘贴所有回复。您可以使用jsonviewer更好地查看结构
编辑->如我所见...地址是一个对象,因此您需要对其进行迭代以追加字符串。
因此它将是:... address [0] .map(a => ... a.someAddressProperty
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。