修复 SQL 中的无效 json
Posted
技术标签:
【中文标题】修复 SQL 中的无效 json【英文标题】:Fixind invalid json in SQL 【发布时间】:2021-11-20 09:55:32 【问题描述】:我正在使用 json_extract_path_text
在 redshift 中解析 json,但此 json 无效(其中一个字段在字符串值内包含双引号):
"somefield": "4 *\\"`)(z"
有什么办法可以去掉这个引用并用其他值替换它(我并不真正关心这个特定的数据,因为它是错误的,但我想获取这个 json 的其他部分)。
【问题讨论】:
【参考方案1】:您的字符串中的反斜杠数量似乎有误。您需要 1 或 1 来获取双引号,或 3 来获取反斜杠和双引号。但这不是真正的问题。
您可以使用 REPLACE() 函数去除 \" 文本。https://docs.aws.amazon.com/redshift/latest/dg/r_REPLACE.html
REPLACE(json_text, '\\"', '')
我相信 REPLACE() 不会做任何字符串解释,所以不需要额外的转义。
【讨论】:
以上是关于修复 SQL 中的无效 json的主要内容,如果未能解决你的问题,请参考以下文章