首页 > 解决方案 > 如何以json字符串作为值解析json

问题描述

我的 json 对象中的一个值是代表 json 的字符串。如何在 node.js 中解析它?如何将 json 字符串表示为 json 对象中的值?它似乎在字符串中的第一个大括号上失败了。

例子:

> json = '{"t":"{\"a\":1,\"b\":\"a sample text\"}","c":2,"r":"some text"}'
> JSON.parse(json)

> Uncaught SyntaxError: Unexpected token a in JSON at position 8

预期的:

{
  t: '{a:1,b:"a sample text"}',
  c: 2,
  r: 'some text'
}

标签: node.jsjson

解决方案


您可以替换多余的不必要的字符,然后解析 json。我只是做了一些逆向工程来解析它。

let json = '{"t":"{\"a\":1,\"b\":\"a sample text\"}","c":2,"r":"some text"}'

const parsedJson = JSON.parse(json.replace(/\\"/g,"").replace(/"{/g, "{").replace(/}"/g, "}"))

console.log(parsedJson)

希望这可以帮助。


推荐阅读