Ich versuche, json Zeichenfolge für die Hierarchie wie folgt zu generieren:
%Vor%Jede der obigen Abfragen gibt die folgenden Felder zurück:
%Vor%Jetzt versuche ich eine JSON-Zeichenfolge für obige Entitäten wie unten zu generieren:
Erwartete Ausgabe:
%Vor%Code:
%Vor%Jetzt, wenn ich keine Eltern habe und json Schnur für nur Kind dann erzeugen möchte, funktioniert unter Code gut:
%Vor%Ausgabe:
%Vor%Aber jetzt möchte ich JSON für meine Hierarchie mit solch einer integrierten Methode generieren.
Ich weiß, dass ich eine JSON-Zeichenkette loopen, anhängen und erstellen kann, aber ich möchte das auf eine bessere Weise machen, wie ich es für mein Kind getan habe.
Aktualisierung:
%Vor%Vielleicht vermisse ich etwas. Wenn Sie die benötigten Klassen in der Heirachy erstellen, sie mit Daten instanziieren und anschließend serialisieren, wird die Struktur für Sie erstellt.
%Vor%AKTUALISIERT:
Ok, noch ein Versuch.
Ich habe eine Klasse erstellt, die die Informationen in einer Kind-Eltern-Struktur ähnlich wie Ihre Vorschläge enthält. Ich fügte auch einen benutzerdefinierten kleinen Parser hinzu, der rekursiv arbeitet. Vielleicht ist das, was Sie brauchen und / oder was gibt Ihnen die Ideen, die Sie brauchen, um Ihr Problem zu beheben.
Ich habe auch die Ausgabe etwas verändert, indem ich die spitzen Klammern ("[]") hinzugefügt habe. Ich denke, das ist, was Sie mit mehreren Kindern brauchen werden. Zumindest sagt mir der JSON-Validator, dass ich unten gepostet habe. Wenn Sie sie nicht benötigen / wollen, entfernen Sie sie einfach im Parser.
Ich glaube nicht, dass Sie den in Ihrem Beispiel verwendeten Parser verwenden können, ohne irgendeine Form von zusätzlichen Feldern zu haben, wie ich es in meiner vorherigen Antwort gezeigt habe, da diese Parser normalerweise nach Eigenschaftsnamen als Felder suchen dynamisch während der Laufzeit.
Ich denke auch nicht, dass es Ihnen möglich ist, eine dynamische Tiefe Ihrer Eltern-Kind-Kind-Kind-Beziehung mit Listen, Arrays oder Wörterbüchern zu erstellen, weil diese Strukturen eine festgelegte Tiefe haben, sobald sie sie haben sind deklariert.
Hoffe, das hilft. Wenn nicht, lass es mich wissen.
Klasse:
%Vor%Parser:
%Vor%Verwendung:
%Vor%Ausgabe und Link zum JSON-Validator:
%Vor%Ok, versuchen wir es so. Vor allem, da ich dein Vorwort verstehe: du hast Felder der Eigenschaften der Eltern und des Kindes und du musst es in json-Objekt umwandeln. Der Punkt ist hier:
%Vor%Verwenden Sie dynamic und ExpandoObject , um ein Wörterbuch in ein Objekt
zu konvertierenDer andere Code ist trivial: Setzen Sie alle Ihre Objekte mit dynamic auf einen Typ und serialisieren es.
Der vollständige Code:
%Vor%Und Ergebnisausgabe:
%Vor%Sie können jedes Objekt übergeben, auch wenn Sie keine feste Struktur haben:
%Vor%Mit diesem.
Der beste Weg, um dieses Ergebnis zu erhalten
- Sie müssen eine neue Klasse erstellen, die die Beziehung aller Klassen hat. Dann benutze die
Newtonsoft.Json.JsonConvert.SerializeObject (neue Organisation)
Let erstellt eine neue Klasse namens Organisation. Fügen Sie die Beziehung hinzu, die Sie in Json sehen möchten. Dann konvertieren Sie mit JsonConvert in JSON.
Oder Sie können die folgende dynamische Schleife verwenden
dynamisch [] Abteilung = neues Objekt [] {neu {AbteilungId = 1, Name="Abteilung1"}, neu {AbteilungId = 2, Name="Abteilung2"}};
%Vor%