PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie konvertiere ich Text in jsonB

Gemäß Postgres-Dokumentation :

IMHO stellen Sie eine Zeichenfolge im JSON-Format bereit, dann sollten Sie die erste Methode verwenden.

to_json('Fred said "Hi."'::text)  --> "Fred said \"Hi.\""

Wenn Sie versuchen, ein Array von Elementen mit to_json(text) abzurufen, erhalten Sie den nächsten Fehler:

select *
from jsonb_array_elements_text(to_jsonb('[{"field":15,"operator":0,"value":"1"},{"field":15,"operator":0,"value":"2"},55]'::text));

Aber wenn Sie es zuvor in json umgewandelt haben:

select *
from jsonb_array_elements_text(to_jsonb('[{"field":15,"operator":0,"value":"1"},{"field":15,"operator":0,"value":"2"},55]'::json));

+--------------------------------------------+
|                    value                   |
+--------------------------------------------+
| {"field": 15, "value": "1", "operator": 0} |
+--------------------------------------------+
| {"field": 15, "value": "2", "operator": 0} |
+--------------------------------------------+
| 55                                         |
+--------------------------------------------+