json内的字符串形式的json如何反序列化

发布于 2022-09-12 04:40:41 字数 153 浏览 31 评论 0

在一个json中,有个字符串形式的值,但这个值("{b:1}")本身也是个json,如何在反序列化的时候,将这个字符串形式的值(即a)转为json对象

原始json对象

{a:"{b:1}"}

希望反序列化成的json对象

{a:{b: 1}}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

大姐,你呐 2022-09-19 04:40:41

1.这个字段的数据提出来手动再转一次。
2.或者让前端传正确的json。

尘曦 2022-09-19 04:40:41

这个字符串也不是合法的json格式。没法改格式的话就只能手动转成合法的然后JSON.parse。或者eval,不过不是很建议。

var data = {
    a: "{b: 1}"
}
data.a = eval('('+data.a+')');
只为一人 2022-09-19 04:40:41
function strToData(data) {
    let keys = Object.keys(data);
    keys.map(key => {
        if (typeof data[key] == 'string') {
            data[key] = eval(`(${data[key]})`)
        }
    })
    return data;
}

let data = {a: "{b:1}",c: "{d:2}"};
strToData(data) // {a: {b:1},c: {d:2}}
拥醉 2022-09-19 04:40:41

1、通过正则替换成正确的
2、一步一步的转,先整个转JSON,再拿到a的字符串转JSON

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文