Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON.parse不转换字符串化的JSON数组 [ {comicid:“5f55e91271b808206c132d7c”,采购类型:“pb_单一”} ]_Javascript_Arrays_Json_Reactjs - Fatal编程技术网

Javascript JSON.parse不转换字符串化的JSON数组 [ {comicid:“5f55e91271b808206c132d7c”,采购类型:“pb_单一”} ]

Javascript JSON.parse不转换字符串化的JSON数组 [ {comicid:“5f55e91271b808206c132d7c”,采购类型:“pb_单一”} ],javascript,arrays,json,reactjs,Javascript,Arrays,Json,Reactjs,上面是我的字符串化JSON数组,我尝试了JSON.parse和其他函数,比如在for循环中迭代它,但是键值也被打乱了 是否有任何方法或npm方法可以立即输出检索到的变量 var cartItemFromLocalStorage=JSON.parse(localStorage.getItem(“cartitem”); if(cartItemFromLocalStorage!=null){ log(“它来定义”); log(“这是OG数组:“+cartItemFromLocalStorage”);

上面是我的字符串化JSON数组,我尝试了JSON.parse和其他函数,比如在for循环中迭代它,但是键值也被打乱了

是否有任何方法或npm方法可以立即输出检索到的变量

var cartItemFromLocalStorage=JSON.parse(localStorage.getItem(“cartitem”);
if(cartItemFromLocalStorage!=null){
log(“它来定义”);
log(“这是OG数组:“+cartItemFromLocalStorage”);
让cartItemObject={
//设置对象数据
comicid:this.state.comicid,
purchasetype:this.state.purchasetype,
};
log(cartItemObject);
cartItemFromLocalStorage.push(cartItemObject);
setItem(“cartitem”,result);//localStorage仅支持字符串
toast.success(“添加到购物车的物品”);
} 
我检查了控制台,各州都正确地显示了数据

我是react js的极端初学者,非常感谢您的帮助

您编写的“JSON”实际上是JavaScript,而不是JSON。要将其转换为JSON,请使用
JSON.stringify
函数,如下所示

> JSON.stringify([
  { comicid: "5f55e91271b808206c132d7c", purchasetype: "pb_single" }
]);
'[{"comicid":"5f55e91271b808206c132d7c","purchasetype":"pb_single"}]'
然后用它替换localStorage中的值

更简单的方法是在开发人员控制台中键入

localStorage.setItem(“cartitem”,JSON.stringify)([
{comicid:“5f55e91271b808206c132d7c”,采购类型:“pb_单一”}
]));

您的输入看起来不像JSON,JSON需要
s左右键将其粘贴到jsonlint.com之类的JSON验证器中,它将向您确认它无效以下行中的
result
是什么:
localStorage.setItem(“cartitem”,result)
?很抱歉,从那以后它一直在显示,谷歌控制台一直显示为一个对象,而不是真正的对象,我只是在应用程序选项卡上找到它。谢谢