Verwenden von LINQ mit JSON, XML und anderen Datasets
Geschrieben vonOssi Galkin Vor über einer Woche aktualisiertTable of contentsVerwenden von LINQ im Code
LINQ (Language Integrated Query) ist eine einheitliche Abfragesyntax in C#, die zum Abrufen von Daten aus verschiedenen Quellen und Formaten verwendet wird. LINQ kann mit Objekten wie JSON, XML und anderen Datensätzen verwendet werden. LINQ kann in SQL geschrieben werden, wie inAbfrageausdrückeoder in kürzerer FormLambda-Ausdrücke. In diesem Tutorial werden Abfrageausdrücke verwendet.
Das Beispiel im Kurs verwendet LINQ. Das Tutorial bringt Ihnen LINQ selbst jedoch nicht bei. Der Schwerpunkt des Kurses liegt auf der Einführung in die Verwendung des Code-Elements. Das Beispielmaterial stammt aus einem Newtonsoft-Handbuch. Das Beispiel erstellt eine Liste mit Titeln von Blog-Posts aus JSON-Daten.
Bevor wir näher auf das Beispiel eingehen, sollten Sie einige Punkte beachten:
Obwohl Frends Ihnen die Möglichkeit bietet, Ihren eigenen Code zu schreiben, besteht die oberste Priorität darin, vordefinierte Tasks aus der Task-Bibliothek zu verwenden.
Beim Implementieren von C#-Code in Prozesse sollten Sie die Erstellung einer neuen benutzerdefinierten Aufgabe in Betracht ziehen, falls der C#-Code hinsichtlich der Codemenge oder der Codekomplexität zunimmt.
Wenn der erstellte C#-Code in mehrere Prozesse dupliziert wird, ist die Wartung des Codes mühsam.
Beispielprozess:
Der Beispielprozess selbst ist ziemlich einfach und unkompliziert. Er enthält neben Trigger- und Ergebniselementen drei Aufgaben.
Studieren Sie die Aufgabenkonfigurationen aus der folgenden Beschreibung. Falls Sie eine Frends-Umgebung verwenden, wird empfohlen, dass Sie den Prozess implementieren, während Sie den Kursinhalt studieren.
Prozesstaskkonfigurationen
Die Aufgabe „JSON zuweisen“ speichert JSON-Daten in einer Variable namens „json“. Später im Prozess wird auf diese Variable mit der Referenz #var.json verwiesen. In einer realen Lösung wären die JSON-Daten höchstwahrscheinlich das Ergebnis eines API-Aufrufs.
Von hier aus können Sie die JSON-Daten in Ihren eigenen Prozess kopieren:
@"{ 'channel': { 'title': 'James Newton-King', 'link': 'http://james.newtonking.com', 'description': 'James Newton-Kings Blog.', 'item': [ { 'title': 'Json.NET 1.3 + Neue Lizenz + Jetzt auf CodePlex', 'description': 'Ankündigung der Veröffentlichung von Json.NET 1.3, der MIT-Lizenz und des Quellcodes auf CodePlex', 'link': 'http://james.newtonking.com/projects/json-net.aspx', 'categories': [ 'Json.NET', 'CodePlex' ] }, { 'title': 'LINQ to JSON Beta', 'description': 'Ankündigung von LINQ to JSON', 'link': 'http://james.newtonking.com/projects/json-net.aspx', 'categories': [ 'Json.NET', 'LINQ' ] } ] } }"
Die nächste Aufgabe, „JSON in JToken konvertieren“, macht, was der Name der Aufgabe sagt: Sie konvertiert die Daten in JToken.
Die letzte Aufgabe im Prozess heißt „Titel zuweisen“ und ist ein C#-Elementtyp. Der Code in der Elementkonfiguration ist eine LINQ-Abfrage. Die Abfrage erstellt eine Liste von Blogtiteln aus JSON-Daten. Das zurückgegebene Ergebnis des C#-Codes wird in einer Variable namens „Titel“ gespeichert.
Kopieren Sie den unten stehenden Code in Ihren eigenen Prozess.
{ var postTitles = from p in ((JObject)#result[JSON in JToken konvertieren].Jtoken)["Kanal"]["Element"] select (Zeichenfolge)p["Titel"]; return postTitles; }
Schließlich wird das Return-Element so eingestellt, dass es #var.titles zurückgibt.
Ergebnis der Prozessausführung
Jetzt können Sie den Prozess speichern und ausführen. Das Ergebnis sollte wie folgt aussehen:
LINQ-Ressourcen
Weitere Informationen zu LINQ finden Sie in den folgenden Quellen:
Microsoft Language Integrated Query (LINQ) (C#)
Newtonsoft Beispielquelle
Der nächste Artikel istBeispiel für komplexeren C#-Code
Verwandte ArtikelEinführung in C#-Datentypen in FrendsSo verwenden Sie LINQ in Frends zur Datenextraktion und -manipulationBeispiel zur Verwendung von Low-Code-Referenzen zur NachrichtenerstellungEinführung in die Verwendung von LINQ mit JSON-ObjektenEinführung in das Erstellen einer JSON-Nachricht – ein nicht ganz einfaches Beispiel