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でregexesを使用してJSONを操作する必要はありません。 [PostgresにはJSONデータの検索と操作のためのJSON関数がたくさんあります](https://www.postgresql.org/docs/current/static/functions-json.html)。あなたはそのJSONから何を得ようとしていますか? – Schwern
この例では、高度フィールドを入力したいとします。 – Anusha
@Schwernも最初と二重引用符で余分な二重引用符を認識しました – Anusha