Невозможно проанализировать комбинацию данных JSON и XML (неверно JSON) - PullRequest
1 голос
/ 03 апреля 2020

Значение, которое я получаю из источника: что-то вроде этой комбинации JSON, а также XML (неверно JSON)

{"status":"success","statusCode":"200","result":[{"type":"abc","details":{"ax":{"value":"<?xml version="1.0" encoding="UTF-8"?>"},"tag":"jhgjg","jhgdj":{"khdjh":"no","value":"nhdhghgd","conf":90},"mother":{"value":"","conf":0}},"checksum":"jddkhjkdh"}]}

Что недопустимо JSON, даже нет любая модификация возможна в конце источника. Хотя это так, как я могу разобрать данные.? Пожалуйста, предложите.

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Вам придется избегать этих двойных кавычек, что-то вроде:

let json = '{"status":"success","statusCode":"200","result":[{"type":"abc","details":{"ax":{"value":"<?xml version="1.0" encoding="UTF-8"?>"},"tag":"jhgjg","jhgdj":{"khdjh":"no","value":"nhdhghgd","conf":90},"mother":{"value":"","conf":0}},"checksum":"jddkhjkdh"}]}'
  .replace(/version="/, "version=\\\"")
  .replace(/" encoding="/, "\\\" encoding=\\\"")
  .replace(/\"\?>/, "\\\"?>");

console.log(JSON.parse(json));
0 голосов
/ 03 апреля 2020

Конечно, вы могли бы избежать кавычек, как предлагает Луис Рамальо, но почему все так просто? (:

Здесь я выделил все внутри тегов < > и заменил двойные кавычки одинарными.

let data = '{"status":"success","statusCode":"200","result":[{"type":"abc","details":{"ax":{"value":"<?xml version="1.0" encoding="UTF-8"?>"},"tag":"jhgjg","jhgdj":{"khdjh":"no","value":"nhdhghgd","conf":90},"mother":{"value":"","conf":0}},"checksum":"jddkhjkdh"}]}';

const bracketRange = [data.indexOf('<'), data.indexOf('>')];

let tag = data.slice(bracketRange[0], bracketRange[1] + 1);

const quote = /"/g;

tag = tag.replace(quote, "'");

const beginning = data.slice(0, bracketRange[0] - 1);
const ending = data.slice(bracketRange[1] + 1, data.length);

data = beginning + tag + ending;

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