有时候后端返回的数据中有数组或对象的结构,却仍然以字符串的形式返回给前端;
let data = {
records: [
{
"id": "1",
"info": '[{"name":"张三","age":60},{"name":"李四","age":80}]'
},
{
"id": "2",
"info": '[{"name":"王五","age":90},{"name":"郑六","age":100}]'
}
]
}
data.records.forEach(element => {
for(let i = 0, len = element.info.length; i < len; i++) {
console.log(element.info[i].name) // undefined
}
})
如上面代码中的info属性值就是一个字符串类型,前端拿到后是不能直接使用的,需要用 JSON.parse 转化一下
data.records.forEach(element => {
element.info = JSON.parse(element.info)
for(let i = 0, len = element.info.length; i < len; i++) {
console.log(element.info[i].name) //张三 李四 王五 郑六