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字符串属性之间,不可以存在空格,否则提取相应属性值,会出现问题。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐