JSON ontleden in postgresql

Ik heb een tabel in mijn database die karaktervariabele kolommen bevat en deze kolom heeft json. Ik moet een query schrijven die deze json op de een of andere manier in afzonderlijke kolommen zal parseren.

Ik vond json_each-functie hiermaar ik begrijp niet hoe ik ermee moet werken.


Antwoord 1, autoriteit 100%

Ik heb het door, jongens

als ik een tafel heb boeken
voer hier de afbeeldingsbeschrijving in

Ik kan gemakkelijk een vraag schrijven

SELECT 
   id, 
   data::json->'name' as name
FROM books;

En het zal resulteren in

voer hier de afbeeldingsbeschrijving in

Ik kan ook proberen een niet-bestaande kolom te krijgen

SELECT 
   id, 
   data::json->'non_existant' as non_existant
FROM books;

En in dit geval krijg ik een leeg resultaat

voer hier de afbeeldingsbeschrijving in


Antwoord 2, autoriteit 40%

Geweldig, bedankt voor het delen. Ik ontdekte dat je dieper kunt gaan zoals:

SELECT 
   id, 
   data::json->'name' as name,
   data::json->'author' ->> 'last_name' as author
FROM books;

Other episodes