如何使用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