Abfrage von JSON mit LINQ

8

Ich habe eine JSON-Antwort, die ich von einem API-Aufruf erhalte. Es hat mehrere verschachtelte Ebenen, wie unten gezeigt (dies ist ein Schnipsel):

%Vor%

Ich möchte die Daten vom PayCycle-Knoten mit Linq abrufen. Ich kann zum Beispiel die Elemente mit einem Wert von wahr mit Result.ServiceAgreement.AdditionalItems.SchedultedBased mit dem folgenden Linq im Controller abrufen:

%Vor%

Jetzt muss ich Result.ServiceAgreement.AdditionalItems.Paycycle.ScheduleBased und SelfBilling Eigenschaften bekommen. Wie mache ich das, wenn PayCycle auch ein Array ist, wie bekomme ich die Kinder, wie ich mit Data.Items in der Linq oben, so dass ich den Where-Klausel-Filter für diese beiden Elemente haben kann?

    
KDee 17.09.2012, 11:31
quelle

2 Antworten

13

Sie können das JSON in ein Objekt dynamic deserialisieren und dann Linq to Objects:

verwenden %Vor%

Beachten Sie, dass ich Klammern {und} um Ihre Beispiel-JSON-Zeichenfolge einfügen musste, sonst gefällt es dem .NET-JSON-Parser nicht.

    
CodingWithSpike 17.09.2012, 12:18
quelle
0

Zu Beginn ist mir das Schreiben von LINQ / LAMBDA mit diesem Format ["etwas"] ["ding"] nicht vertraut. Mein erster Schritt wäre, einige Klassen / Objekte zu erstellen, in denen die Daten gespeichert werden können, um später den Code zu erstellen.

z.B.

%Vor%

Aber möglicherweise versuchen Sie Folgendes?

%Vor%     
Rohan Büchner 17.09.2012 11:45
quelle

Tags und Links