从 JSON 中删除新行

Posted

技术标签:

【中文标题】从 JSON 中删除新行【英文标题】:Remove new lines from JSON 【发布时间】:2017-12-25 18:28:13 【问题描述】:

假设我有以下字符串:


  "\n <<<-- error
     \"SomeKey\": \n    \"somevalue\": \"test\",\n,
     \"AnotherKey\": \"Long string should be here \n another line break here \n and another line here \"
    

当您尝试使用 JSON.parse 解析此字符串时,它会引发指向第一个换行符的错误。有没有什么办法可以在不删除不在引号内的 \n 的情况下摆脱换行符。

谢谢!

【问题讨论】:

是什么生成了这个 json 字符串?这就是您应该解决的问题,而不是稍后尝试修复损坏的 json。 所以基本上它返回一个格式化的 JSON 响应,其中包含 \n 在每一行的开头。 分享实际的 JSON。 那个端点是什么?它没有生成正确的 json。 那你如何解析 XML 呢? 【参考方案1】:

使用JSON.stringify 并删除换行符;

var json = JSON.stringify(jsonData);
json = json.replace(/\\n/g, '');

【讨论】:

【参考方案2】:

从 JSON 字符串中剥离 \n 并执行 JSON.parse

var json_data = "\n \"Fullname\": \"Alex Johnson\",\n \"FirstName\": \"Alex\", \n \"LastName\": \"Johnson\"\n ";
 
 var obj = JSON.parse(json_data.replace(/\r?\n|\r/g, ''));
 
 console.log(obj);

【讨论】:

这会起作用,但它也会应用于引号内的内容。 我认为真正的解决办法是,您应该向后端或 API 团队请求正确的 JSON。【参考方案3】:

您应该使用数组或映射并将其转换为正确的 JSON 字符串,因为该 JSON 字符串看起来像是由错误的字符串连接逻辑制成的

【讨论】:

以上是关于从 JSON 中删除新行的主要内容,如果未能解决你的问题,请参考以下文章

删除 JSON 对象中的元素

如何从用户控制台输入中删除新行

从 C# 添加新行时如何在 GridView 中添加删除链接?

从char字符串c ++中删除新行

C ++从多行字符串中删除新行

从服务器同步时如何构建本地数据库以删除行