我在presto中解析一个json
,并在它上面应用正则表达式.
{"value":"{\"123\":{\"type\":\"TAGGING\",\"role\":\"RESULT\",\"payload\":[{\"values\":{\"qbc\":\"not-abc\",\"def\":\"yes\",\"ghi\":\"gh\"}}]}}"}
Regexp used :
REGEXP_EXTRACT(JSON_EXTRACT_SCALAR(
Opfields,
'$.value'
),
'.*"abc":(.*?),',
1
) abc
现在这对abc有效,因为abc值后有一个逗号,但对ghi不起作用.对于ghi,我知道在本例中,我可以在本例中使用}.但问题是,这些定标器值(如abc、ghi)可能以不同的顺序出现,在这种情况下,它可能以逗号或}结尾.
我正在寻找一种在任何情况下都可以工作的表达式,无论顺序是什么.从本质上讲,我需要abc、def和ghi的值,无论它们在json中的出现顺序如何.
有人能建议一下做这件事的好方法吗?
我已经提到了我try 过的regexp