sql具体写法:
select regexp_replace(regexp_extract(a.str_json, '^["]?(\\{\.*\\})["]?$', 1) --将json串最外层双引号去掉
, '(?<=([^\\{:,]))(")(?=([^\\}:,]))', '”') --将json各项的值中有包含英文的双引号替换为中文双引号
此方法有一个弊端就是josn中key或者value中,如果英文双引号 ("
) 的前后紧邻英文冒号 (:
) 或者英文逗号 (,
),或者前面紧邻 {
,后面紧邻 }
的话英文下的双引号 ("
) 正则是匹配不到的。