我正试图从如下json字符串创建一个js映射:
function jsonToMap(jsonStr)
{
return new Map(JSON.parse(jsonStr));
}
jsonStr参数包含一个有效的json。json只有字符串键,但可以将对象作为值。
调用上述方法会产生错误
TypeError:JSON.parse(…(不可迭代
为什么会发生这种情况,我该如何解决?
这告诉我们JSON定义的最外层是不可迭代的。例如,也许它定义了一个对象(普通对象是不可迭代的(。
如果它确实定义了一个对象,并且你想为它获取Map
,你可以通过Object.entries
:来实现
function jsonToMap(jsonStr)
{
return new Map(Object.entries(JSON.parse(jsonStr)));
}
Object.entries
为对象自己的、可枚举的、字符串命名的属性创建一个[name, value]
对数组。