[英]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.