从 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 中删除新行的主要内容,如果未能解决你的问题,请参考以下文章