Nested JSON aus flat Tabelle

Programmierung mit PostgreSQL (C#, PHP, Perl, Java, ...)
Antworten
neurot
Neuer Benutzer
Beiträge: 1
Registriert: So 15. Apr 2018, 17:06

Nested JSON aus flat Tabelle

Beitrag von neurot » So 15. Apr 2018, 17:22

Hallo Forum

Ich häng an folgendem Problem fest: Ich möchte aus einer Tabelle ein gruppiertes JSON Dictionary generieren.

Also aus:

1, 1, 1, "aaa"
1, 2, 1, "bbb"
2, 1, 1, "ccc"
2, 1, 2, "ddd"

ein:

Code: Alles auswählen

{
  "1": {
    "1": {
      "1": "aaa"
    },
    "2": {
      "1": "bbb"
    }
  },
  "2": {
    "1": {
      "1": "ccc",
      "2": "ddd"
    }
  }
}
Hat grad jemand schon was in der Richtung gemacht und kann mir einen Schnipsel anbieten?

Danke & Grüsse

pogomips
Benutzer
Beiträge: 55
Registriert: Fr 18. Nov 2016, 09:55

Re: Nested JSON aus flat Tabelle

Beitrag von pogomips » Do 19. Apr 2018, 08:58

neurot hat geschrieben:
So 15. Apr 2018, 17:22
Hat grad jemand schon was in der Richtung gemacht und kann mir einen Schnipsel anbieten?
Vielleicht gibt es noch schönere Möglichkeiten, aber so kann man es machen (ab V 9.5 oder so)

Code: Alles auswählen

select json_object_agg(one, json_build_object(two, three))
  from (select 1 ::int as one, 1 ::int as two,'aaa' ::varchar(20) as three 
        union all select 1, 2, 'bbb' 
        union all select 2, 1, 'ccc') x
 group by one;
 >
 { "1" : {"1" : "aaa"}, "1" : {"2" : "bbb"} }
{ "2" : {"1" : "ccc"} }

Antworten