Как разобрать json со строкой json в качестве значения - PullRequest
0 голосов
/ 19 июня 2020

Одно из значений в моем объекте 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'
}

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Я обнаружил, что для того, чтобы представить эту строку json как значение в объекте json, мне пришлось использовать двойную косую черту, чтобы избежать кавычек:

> json = '{"t":"{a:1,b:\\"a sample text\\"}","c":2,"r":"some text"}'
> JSON.parse(json)
{ t: '{a:1,b:"a sample text"}', c: 2, r: 'some text' }
0 голосов
/ 19 июня 2020

Вы можете заменить лишние ненужные символы, а затем проанализировать 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)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...