必须两次JSON.parse才能从字符串化二维码中提取JSON对象
我有一些JSON必须两次JSON.parse才能从字符串化二维码中提取JSON对象,json,typescript,react-native,Json,Typescript,React Native,我有一些JSON { id: "abcd", type: "receive" } 我使用一些在线二维码生成器将其字符串化并生成二维码。在我的react native应用程序中,我正在使用react native qrcode scanner扫描此qr码,该qr码调用一个onSuccess(qrcode:Event)函数 我已按如下方式设置该函数: 成功时的函数(qrCode:事件){ console.log(qrCode.data); const parsedData=JSON
{
id: "abcd",
type: "receive"
}
我使用一些在线二维码生成器将其字符串化并生成二维码。在我的react native应用程序中,我正在使用react native qrcode scanner
扫描此qr码,该qr码调用一个onSuccess(qrcode:Event)
函数
我已按如下方式设置该函数:
成功时的函数(qrCode:事件){
console.log(qrCode.data);
const parsedData=JSON.parse(qrCode.data);
console.log(parsedData);
console.log(解析数据的类型);
console.log(parsedData.id);
const parsedData2=JSON.parse(parsedData);
console.log(parsedData2.id);
导航。导航(“主页”);
}
这将提供以下输出
"{\"type\":\"receive\",\"id\":\"abcd\"}"
{"type":"receive","id":"abcd"}
string
undefined
abcd
所以基本上,qrCode.data
是一个字符串,这是预期的parsedData
像对象一样输出,但具有typeof
string
。访问parsedData
上的属性会给出undefined
——如果它是字符串,这是有意义的。当我第二次将它解析为parsedData2
时,这是一个对象,我可以访问它的属性
我的困惑是,为什么它不只是第一次解析它?为什么我要做两次