React fetch请求Golang接口返回JSON解析仅得到数字问题求助
问题根因
你遇到的问题是两个基础语法错误叠加导致的:
response.json()已经完成了JSON解析工作,你拿到的jsonArr是原生JavaScript数组,内部元素已经是可以直接读取属性的对象,完全不需要再调用JSON.parse做二次解析。- 遍历数组错误使用了
for...in语法:for...in是用来遍历对象可枚举属性的语法,应用在数组上时,拿到的遍历值是字符串类型的数组索引(即"0"、"1"、"2"),你把这几个索引字符串传给JSON.parse,自然会被解析为数字0、1、2,也就不可能读到对象属性。
正确写法
直接使用数组遍历方法读取元素即可,不需要任何额外解析操作:
// 方案1:for...of 遍历直接拿元素 for (const rentalObj of jsonArr) { console.log(rentalObj.date); // 可直接读取属性 } // 方案2:数组forEach方法 jsonArr.forEach(rentalObj => { console.log(rentalObj.id, rentalObj.rentedTo); }) // 方案3:需要索引时用普通for循环 for (let i = 0; i < jsonArr.length; i++) { const rentalObj = jsonArr[i]; console.log(rentalObj); }
内容的提问来源于stack exchange,提问作者Ryan Thomas
相关产品推荐
相关产品推荐

