Reduzieren Sie ein JSON-Dokument mit jq

8

Ich betrachte das folgende Array von JSON-Objekten:

%Vor%

und ich möchte es platt machen, um zu bekommen:

%Vor%

Ich versuche mit jq zu arbeiten, aber ich schaffe es nicht, "fields" zu reduzieren. Wie soll ich das machen? Im Moment interessiere ich mich für Kommandozeilen-Tools, aber ich bin offen für andere Vorschläge.

    
Dror 11.07.2014, 12:49
quelle

3 Antworten

22

Dieser war ein schwieriger zu basteln.

%Vor%

Lasst es uns erklären und die einzelnen Teile erklären

  1. Für jedes Element im Array ...

    %Vor%
  2. Erstellen Sie ein neues Objekt, das die Werte für alle außer der Eigenschaft fields enthält.

    %Vor%
  3. Kombiniere das mit ...

    %Vor%
  4. Jede fields projiziert jeden der Werte auf das erste Element jedes Arrays

    %Vor%
Jeff Mercado 12.07.2014, 06:32
quelle
2

Sie können diesen Filter verwenden:

%Vor%

Sie können hier Ссылка

testen     
aborruso 30.08.2014 19:17
quelle
1

Hier sind einige Variationen, die beginnen, indem .fields in das umschließende Objekt mit + zusammengeführt werden und dann die Array-Elemente abgeflacht werden. Zuerst kümmern wir uns um .fields mit

%Vor%

hinterlässt uns Objekte, die wie

aussehen %Vor%

Dann können wir die Tasten auf mehrere Arten glätten. Eine Möglichkeit besteht darin, with_entries

zu verwenden %Vor%

Eine andere Möglichkeit besteht darin, reduce und setpath

zu verwenden %Vor%     
jq170727 02.08.2017 17:05
quelle

Tags und Links