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.
Dieser war ein schwieriger zu basteln.
%Vor%Lasst es uns erklären und die einzelnen Teile erklären
Für jedes Element im Array ...
%Vor% Erstellen Sie ein neues Objekt, das die Werte für alle außer der Eigenschaft fields
enthält.
Kombiniere das mit ...
%Vor% Jede fields
projiziert jeden der Werte auf das erste Element jedes Arrays
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%