繁体   English   中英

如何解析 JSON object,如果它的一个键有 strigified 值

[英]How to parse JSON object, if one of it's key has strigified value

在下面,键c有一个字符串化的值:

let obj = {
   a: "apple",
   b: 2,
   c: '{"p":"11","q":"22","r":{"x":"aa","y":"bb"}}'
   d: "3"
}

我需要解析这个 object。我可能有多个带有字符串化 object 数据和一些纯字符串的键。

我尝试执行JSON.parse(obj)但它给出了一个错误。 我也尝试使用JSON.parse(JSON.stringify(obj))但它返回与初始obj相同的结果。

有什么办法可以解决这个案子吗?

您可以遍历 object 的每个条目,并对每个字符串值使用JSON.parse

 let obj = { a: 1, b: 2, c: '{"p":"11","q":"22","r":{"x":"aa","y":"bb"}}' } for (const [key, val] of Object.entries(obj)) if (typeof val === 'string') obj[key] = JSON.parse(val); console.log(obj);

您使用JSON.parse来解析 JSON。

obj不是 JSON 这是一个 JavaScript object。

obj.c是一个JSON的字符串。你可以解析它。

const result = JSON.parse(obj.c);

这会将所有成功解析为 JSON 的属性值替换为生成的 object。它使用异常处理程序来捕获字符串无效 JSON 的情况。

 let obj = { a: "apple", b: 2, c: '{"p":"11","q":"22","r":{"x":"aa","y":"bb"}}', d: "3" } for (let key in obj) { try { if (typeof obj[key] === 'string' && obj[key].startsWith('{')) { obj[key] = JSON.parse(obj[key]); } } catch (ignore) {} } console.log(obj)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM