最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

由于JSON字符串中有空格,因此无法解析JSON

IT培训 admin 0浏览 0评论

由于JSON字符串中有空格,因此无法解析JSON

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

我通过调整每个值尝试了reviver,但仍然不起作用。

这是我的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字符串不得包含任何文字换行符-它只能包含representations换行符,例如\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);

由于JSON字符串中有空格,因此无法解析JSON

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

我通过调整每个值尝试了reviver,但仍然不起作用。

这是我的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字符串不得包含任何文字换行符-它只能包含representations换行符,例如\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);
发布评论

评论列表 (0)

  1. 暂无评论