【发布时间】:2017-06-01 20:24:48
【问题描述】:
我的 rest API 返回以下 json 内容:
[{
"key": "apple",
"value": "green"
},
{
"key": "banana",
"value": "yellow"
}]
我正在使用此代码遍历列表:
this.props.json.map(row => {
return <RowRender key={id.row} row={row} />
}
它可以工作,因为内容已显示,但在网络浏览器的控制台上我可以看到一个错误:
地图不是函数
我用谷歌搜索了它,并将我的代码更改为:
Array.prototype.slice.call(this.props.json).map(row => {
return <RowRender key={id.row} row={row} />
}
它可以正常工作,但看起来很复杂。这是完成这项工作的正确方法吗?
更新
我尝试了什么:
- JSON.parse(...).map:JSON 输入意外结束
- JSON.parse(JSON.stringify(...)).map(...): 数据已显示,但出现错误:JSON.parse(...).map 不是函数
- Array(...).map:数组或迭代器中的每个子元素都应该有一个唯一的键。
【问题讨论】:
-
究竟是什么
this.props.json...?它是如何创建的?{ ... }, { ... }既不是有效的 JSON 也不是 Javascript。 -
您可以使用
Array(this.props.json),而不是使用Array.prototype.slice.call(this.props.json),但无论如何,您的应用程序似乎有问题。这是您 API 的完整输出吗? -
已更新。现在看起来好多了
-
现在您的 JSON 响应有效,我可以发布解决方案,但问题被保留。
-
尝试使用
JSON.parse(response),你会得到数组。这是正确的方法。
标签: javascript json ecmascript-6