str_to_map(字符串参数, 分隔符1, 分隔符2)
使用两个分隔符将文本拆分为键值对。
分隔符1将文本分成K-V对,分隔符2分割每个K-V对。对于分隔符1默认分隔符是 ‘,’,对于分隔符2默认分隔符是 ‘=’。
使用案例:
select str_to_map('aaa:11&bbb:22', '&', ':')
结果:
{"bbb":"22","aaa":"11"}
将 json 字符串转变为 map
使用案例:
select
pro_map,
pro_map["id"] as id,
pro_map["name"] as name
from
(
select str_to_map(regexp_replace(regexp_replace(regexp_replace('{"id":1,"name":"xiaoming"}', '\"', ''), '\\{',''),'\\}',''), ',', ':') as pro_map
) temp;
执行结果:
{"id":"1","name":"xiaoming"} 1 xiaoming
注意: 上面使用的正则表达式替换的方式,json字符串属性之间,不可以存在空格,否则提取相应属性值,会出现问题。