【问题标题】:Remove new lines from JSON从 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 呢?

标签: javascript json regex


【解决方案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 字符串看起来像是由错误的字符串连接逻辑制成的

    【讨论】:

      猜你喜欢
      • 2015-09-12
      • 2022-10-24
      • 1970-01-01
      • 1970-01-01
      • 2018-01-17
      • 2021-05-11
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多