Ich habe json, das so aussieht:
%Vor% ... wo ich den Abschnitt Overrides.Special
verwenden möchte, um Felder im Workflow-Objekt hinzuzufügen oder zu aktualisieren. Mit anderen Worten, mit dem obigen json möchte ich so etwas tun:
Und am Ende mit so etwas:
%Vor% Ich kann die obige Funktion Merge-Object
natürlich schreiben, um Werte hinzuzufügen oder zu aktualisieren, je nachdem, was im Override-Bereich ist, aber es scheint, dass es eine eingebaute oder einzeilige Möglichkeit geben sollte (könnte?) .
Ich habe es versucht:
%Vor%... aber das funktioniert nicht ganz.
%Vor%Dies ermöglicht das Hinzufügen von Parametern:
%Vor%... aber es ist nicht so toll, sie zu aktualisieren
%Vor%Hinweis - In diesem Beispiel wähle ich die Konvertierung nach dem Konvertieren des JSON in ein PSObject, aber das ist keine Voraussetzung.
Ich habe einen One-Liner, um zu tun, was Sie verlangen. Beachten Sie, dass PowerShell, soweit ich weiß, nicht direkt mit json-Strings behandelt. Aber sobald es in PowerShell-Objekte konvertiert wurde, ist es wie jedes andere Objekt.
Definieren Sie also zuerst Ihre json-Datei und lesen Sie sie als eine einzelne Zeichenfolge:
%Vor%Definieren Sie die Eigenschaft, auf der die json-Objekte und das 1. und 2. Objekt zusammengeführt werden sollen:
%Vor%Sieh dir jetzt das Einliner an (das ich aus Gründen der Klarheit in 3 geteilt habe):
%Vor% Siehst du? $MergedJson
enthält die folgende Zeichenfolge (mit Ihrer JSON-Zeichenfolge):
Suchen Sie das?
P.S .: Wenn Sie die Rollen von $ 1 und $ 2 vertauschen, ändern sich die Werte der gemeinsamen Parameter (wie OtherParam
), die Vorrang haben.
Tags und Links json powershell