我目前正在尝试解析以下JSON输出。 这些JSON对象存储在一个大字符串中,而不是存储在JSON数组中。因此它不是有效的JSON。
{"output": "te\ns\nt"}
{"output": "test"}
此字符串还包含多个新行。因此,拆分新行不是一种选择。
然而,有没有办法解析这个无效的JSON,它会产生一个有效的JSON对象数组?
答案 0 :(得分:2)
如果你的对象列表(让它调用它)包含有效对象,你可以先从每一行创建一个数组,然后遍历该数组并解析JSON:
let data = `{"output": "test"}
{"output": "test"}`; //template string to make the newlines work flawless...
// first split on newline filter out "" map to the parsed JSON
data = data.replace(/}\n*/g, "}**").split("**") .filter(Boolean) .map(JSON.parse);
console.log(data);

答案 1 :(得分:1)
这可能有用了。
let string = `{"output": "te\ns\nt"}
{"output": "test"}`
let json = JSON.parse(`[${string.replace(/}[\s]*\{/g, '}, {').replace(/\n/g, '\\n')}]`)
console.log(json) // [ { output: 'te\ns\nt' }, { output: 'test' } ]
不漂亮且非常脆弱,但很快。