【问题标题】:Fixind invalid json in SQL修复 SQL 中的无效 json
【发布时间】:2021-11-20 09:55:32
【问题描述】:

我正在使用 json_extract_path_text 在 redshift 中解析 json,但此 json 无效(其中一个字段在字符串值内包含双引号):

"somefield": "4 *\\"`)(z"

有什么办法可以去掉这个引用并用其他值替换它(我并不真正关心这个特定的数据,因为它是错误的,但我想获取这个 json 的其他部分)。

【问题讨论】:

    标签: json amazon-redshift


    【解决方案1】:

    您的字符串中的反斜杠数量似乎有误。您需要 1 或 1 来获取双引号,或 3 来获取反斜杠和双引号。但这不是真正的问题。

    您可以使用 REPLACE() 函数去除 \" 文本。https://docs.aws.amazon.com/redshift/latest/dg/r_REPLACE.html

    REPLACE(json_text, '\\"', '')
    

    我相信 REPLACE() 不会做任何字符串解释,所以不需要额外的转义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      • 2012-05-11
      • 2013-02-18
      • 2022-01-04
      • 2013-09-02
      • 2017-01-28
      相关资源
      最近更新 更多