gpt4 book ai didi

node.js - 由于 JSON 字符串中存在尾随空格,无法解析 JSON

转载 作者:太空宇宙 更新时间:2023-11-03 23:54:08 24 4
gpt4 key购买 nike

我目前正在开发一个网络抓取工具,我正在从 <script type="application/ld+json> 获取 JSON。在特定网页上。我使用 Cheerio 将其作为字符串获取,并将其传递给 JSON 解析器(npm 包)。但我不断收到语法错误,如果该值有尾随空格,就会发生这种情况。

我尝试通过修剪每个值来恢复,但它仍然不起作用。

这是我的 JSON 字符串的片段,其中出现语法错误:

{"...821", "description":"                                                  \r\n
","@type":"Organization",...}

这是我收到的错误:

ErrorEXError [JSONError]: Unexpected token       in JSON at position 1432 while parsing near '...821","description":"                                                \r\n                                             ","...'

如何修剪 description没有字符串操作的值?

最佳答案

格式正确的 JSON 字符串不得包含任何文字换行符 - 它只能包含换行符的表示,例如 \r\n。将所有文字换行符替换为 \n,您应该能够正确解析它:

const jsonStr = `{"description":"                                                  \r\n
","@type":"Organization"}`;
const jsonStrWithoutNewlines = jsonStr.replace(/[\n\r]+/g, '\\n');
const obj = JSON.parse(jsonStrWithoutNewlines);
console.log(obj);

也不允许使用文字制表符 - 如果存在问题,请将其替换为 \t:

const jsonStr = `{"description":"                                                  \r\n
","@type":"Organization "}`;
const jsonStrWithoutNewlines = jsonStr
.replace(/[\n\r]+/g, '\\n')
.replace(/\t/g, '\\t');
const obj = JSON.parse(jsonStrWithoutNewlines);
console.log(obj);

关于node.js - 由于 JSON 字符串中存在尾随空格,无法解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58090175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com