JSON-Daten nach C# mit JSON.NET deserialisieren: Umgang mit unvollständigen JSON-Strukturen
Beim Umgang mit JSON-Daten und C#-Klassen stoßen Sie häufig auf JSON-Strukturen, die möglicherweise nicht alle in der C#-Klasse definierten Eigenschaften enthalten. Die Deserialisierung solcher JSON-Daten mithilfe von JSON.NET erfordert eine leistungsstarke Methode zum ordnungsgemäßen Umgang mit fehlenden Daten.
Json.NET bietet eine praktische Lösung für dieses Problem. Durch die Nutzung der erweiterten Funktionen können Sie JSON-Daten in C#-Klassen deserialisieren und gleichzeitig fehlende Eigenschaften nahtlos verarbeiten.
C#-Klasse aus JSON erstellen
Verwenden Sie zunächst ein Online-Tool wie JSON2CSharp.com, um eine C#-Klasse aus der JSON-Struktur zu generieren. Dadurch wird eine Reihe von C#-Klassen erstellt, die die JSON-Datenstruktur genau darstellen.
JSON-Daten deserialisieren
Sobald Sie über die C#-Klassen verfügen, können Sie die von JSON.NET bereitgestellte JsonConvert-Klasse verwenden, um JSON-Daten in diese Klassen zu deserialisieren. Der folgende Code demonstriert dies:
<code class="language-csharp">var myJson = @"{ ""givenname"": ""Robert"", ""passwordexpired"": ""20091031041550Z"", ""accountstatus"": [""active""], ""accountstatusexpiration"": [""20100612000000Z""], ""employeeid"": [""999777666""], ""sn"": [""Johnson""] }"; var rootObject = JsonConvert.DeserializeObject<rootobject>(myJson);</code>
Mit JsonConvert.DeserializeObject können Sie JSON-Daten direkt in eine Instanz der RootObject-Klasse deserialisieren. Dieses Objekt enthält alle in den JSON-Daten vorhandenen Eigenschaften.
Umgang mit fehlenden Daten
Wenn in den JSON-Daten Attribute fehlen, weist Json.NET den entsprechenden Attributen in der C#-Klasse automatisch Standardwerte zu. Wenn beispielsweise die Zugehörigkeitseigenschaft in den JSON-Daten fehlt, wird die Zugehörigkeitseigenschaft im RootObject mit einem leeren Array initialisiert.
Angepasster Standardwert
Bei Bedarf können Sie den einem fehlenden Attribut zugewiesenen Standardwert mithilfe des DefaultValueAttribute-Attributs anpassen, wie unten gezeigt:
<code class="language-csharp">[DefaultValue("N/A")] public string Affiliation { get; set; }</code>
Fazit
Mit JSON.NET und empfohlenen Methoden wird die Deserialisierung von JSON-Daten in C#-Klassen zu einem einfachen und leistungsstarken Prozess, auch wenn fehlende Daten ordnungsgemäß verarbeitet werden. Dies ermöglicht einen effizienten und effektiven Datenaustausch zwischen verschiedenen Systemen und Anwendungen.
Das obige ist der detaillierte Inhalt vonWie gehe ich anmutig mit fehlenden Daten um, wenn JSON mit JSON.NET von JSON zu C# verwiesen wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!