JSON-zu-JSON-Mapping mit Handlebars Task

So verwenden Sie die Handlebars-Aufgabe, um beliebige JSON- in Textumwandlungen durchzuführen.

Ossi Galkin avatarGeschrieben vonOssi Galkin Vor über einer Woche aktualisiertTable of contents

In dieser Anleitung wird gezeigt, wie Sie JSON in ein anderes JSON konvertieren, indem SieLenkeraufgabe. Die Aufgabe wirdlenker.js, eine weit verbreitete Bibliothek, überLenker.Netum JSON-zu-Text-Transformationen durchzuführen. Handlebars sind ein so beliebtes Konzept, dass es Frends Handlebars inspiriert hat. Hoffentlich wird es nicht zu viel Verwirrung stiften, dass sich Handlebars innerhalb der Handlebars-Aufgabe von Handlebars unterscheiden, die anderswo in Frends verwendet werden.

Mit der Handlebars-Aufgabe können beliebige Textdaten wie CSV, XML oder JSON erstellt werden. In diesem Beispiel erstellen wir JSON. Die Handlebars-Aufgabe eignet sich am besten für Situationen, in denen Sie den Datensatz durchlaufen müssen, dafür aber weder C# noch LINQ verwenden möchten.

Wenn Sie mehr über Lenker erfahren möchten, besuchen Sie bittehttps://handlebarsjs.com/guide/#what-is-handlebars.

Beispieltransformation

  1. Speichern Sie folgendes JSON als Eingabedaten in einer Variable namens „bankCards“.

    {

    'Karten': [{

    'id': 3201,

    'Name': 'Spitzname',

    'Gleichgewicht': {

    'Soll': 31,24,

    'Guthaben': 2000,00

    }

    },

    {

    'id': 6676,

    'Name': 'Emma',

    'Gleichgewicht': {

    'Soll': 850,43,

    'Kredit': 406,05

    }

    },

    {

    'Name': 'Victor',

    'Gleichgewicht': {

    'Soll': 4065,12,

    'Guthaben': 2500,05

    }

    },

    {

    'id': 9053,

    'Name': 'Emilia',

    'Gleichgewicht': {

    'Soll': 745,30,

    'Guthaben': 1500,00

    }

    },

    {

    'id': 6492,

    'Name': 'Ralph',

    'Gleichgewicht': {

    'Soll': 2040,14,

    'Guthaben': 400,00

    }

    }

    ],

    'Bankier': {

    ‚Name‘: ‚Patrick Bateman‘

    }

    }

  2. Anschließend werden die Eingabedaten durch eine Variable geleitet und ein Modell wird verwendet, um die Daten zu transformieren. Beachten Sie, dass der Eingabemodus der Vorlage „Ausdruck“ sein muss, da Handlebars, die in dieser Aufgabe verwendet werden, durch Handlebars verwechselt werden würden, die überall sonst in Frends verwendet werden. Da der Ausdrucksmodus verwendet wird, wird eine Vorlage als wörtliche C#-Zeichenfolge angegeben. Das bedeutet, dass @" vor der Zeichenfolge hinzugefügt wird und " am Ende. In einem wörtlichen Anführungszeichen muss ein weiteres Anführungszeichen mit einem weiteren Anführungszeichen maskiert werden. Alle anderen Zeichen werden unverändert übergeben.

    @"{{#each Cards}}{{#if @first}}{""BankCards"":[{{/if}}{""BankerName"":""{{../Banker.Name}}"",""CustomerName"":""{{{Name}}} "",""Credit"":{{Balance.Credit}},""Balance"":{{Balance.Debit}} }{{#unless @last}},{{/unless}}{{/each}}]}"

Erläuterung der verwendeten Vorlage

{{#each Cards}} und {{/each}} werden verwendet, um jede Karte im JSON zu durchlaufen. {{#if @first}} und {{/if}} werden verwendet, um zu testen, ob die Schleife bei der ersten Karte ist, und wenn ja, wird der Anfang der Ausgabe-JSON-Struktur geschrieben. Hier starten wir ein Array { "BankCards": [. Natürlich wäre es möglich, dies vor dem Start der Schleife zu schreiben, aber dies war eine praktische Möglichkeit, einen if-Block einzuführen.

Als nächstes wird immer eine geschweifte Klammer { geschrieben, um den Anfang eines JSON-Objekts innerhalb eines Arrays zu erstellen. Die nächsten Zeilen, wie z. B. ""BankerName"": ""{{../Banker.Name}}"", schreiben ein Attribut in das Ausgabe-JSON. Zwei Punkte in {{../Banker.Name}} gehen in der Hierarchie eine Ebene nach oben, dann geht es zu Banker und wählt dort Name aus. In der nächsten Zeile werden "triple-stash", drei geschweifte Klammern, um Name verwendet, um zu verhindernHTML-Escapezeichen. Dadurch wird sichergestellt, dass Nicht-ASCII-Zeichen unverändert an das Ausgabe-JSON übergeben werden.

{{#unless @last}},{{/unless}} prüft, ob die Schleife auf der letzten Karte ist, und wenn nicht, schreibt es ein Komma, um die Objekte innerhalb des JSON-Arrays im Ausgabe-JSON zu trennen. Mit anderen Worten, nach dem letzten Element im Array wird kein Komma geschrieben. Schließlich werden die letzten Zeichen ] } an das Ende des JSON-Arrays geschrieben.

Das Ergebnis der Beispieltransformation

Als Ergebnis erhalten wir das folgende JSON von der Aufgabe.


Verwandte ArtikelErstellen Sie ein JSON-Array und speichern Sie es in einer VariableEinführung in den LenkerEinführung in die Json.Handlebars-AufgabeBeispiele für Lenker-AnwendungsfälleEinführung in JSON-Objekte