如何使用postgres查询从下面的json字符串化字符串获取值?我正在使用正则表达式来做到这一点,但我试图写一些更通用/简单/可信的查询。是的,我不相信我写的东西,我非常确定我会有什么打破。使用postgres从Json字符串化字符串获取数据
这是我有:
SELECT
trim(both '" 'FROM replace(regexp_replace('phone_data', '[\\]
{2,}"([^,:])', '\1', 'g'), '\"', '"'))::json -> 'objects' -> 0 -> 'data' -> 'gpslogs' -> 0 ->> 'cataract'
FROM
"JSON"
WHERE
"ID" = 'eb7613c6-e7aa-4b46-984e-ebf334293fdb';
这是该数据的样子:
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
感谢您的帮助和建议。谢谢。
您不应该在PostgreSQL中使用正则表达式来操作JSON。 [Postgres有大量用于搜索和操作JSON数据的JSON函数](https://www.postgresql.org/docs/current/static/functions-json.html)。你想从这个JSON中获得什么? – Schwern
我们假设在这个例子中,我想要海拔高度场 – Anusha
@Schwern你是否也注意到在开始和结尾处多出一对双引号 – Anusha