Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich JSON mithilfe von JsonConvert.DeserializeObject ordnungsgemäß in eine C#-POCO-Klasse?

Wie deserialisiere ich JSON mithilfe von JsonConvert.DeserializeObject ordnungsgemäß in eine C#-POCO-Klasse?

Susan Sarandon
Susan SarandonOriginal
2025-01-15 11:17:48434Durchsuche

How to Properly Deserialize JSON to a C# POCO Class Using JsonConvert.DeserializeObject?

JSON mit JsonConvert.DeserializeObject in die C#-POCO-Klasse deserialisieren

Frage:

Beim Versuch, JsonConvert.DeserializeObject zum Deserialisieren von JSON-Daten in eine C#-POCO-Klasse zu verwenden, wird eine Ausnahme aufgrund einer falschen Deserialisierung einer bestimmten Eigenschaft ausgelöst.

Antwort:

Um JsonConvert.DeserializeObject zum korrekten Deserialisieren von JSON in eine POCO-Klasse zu verwenden, muss sichergestellt werden, dass die Eigenschaftsnamen in der Klasse mit den Eigenschaftsnamen in den JSON-Daten übereinstimmen. Darüber hinaus können die folgenden Schritte erforderlich sein:

  1. Verwenden Sie das JsonProperty-Attribut: Verwenden Sie das JsonProperty-Attribut, um den JSON-Attributnamen anzugeben, der einem bestimmten Klassenattribut entspricht. Dies ist besonders nützlich, wenn sich der JSON-Eigenschaftsname vom Namen der Klasseneigenschaft unterscheidet.
  2. Attributtypen berücksichtigen: Stellen Sie sicher, dass der Datentyp jedes Attributs in der POCO-Klasse mit dem erwarteten Typ in den JSON-Daten übereinstimmt. Wenn die JSON-Daten beispielsweise ein Array enthalten, sollte die entsprechende Eigenschaft in der POCO-Klasse als Liste deklariert werden.

Beispiel:

Betrachten Sie das folgende Beispiel, in dem die Accounts-Eigenschaft in der User-Klasse von einem JSON-Objekt deserialisiert werden muss:

<code class="language-csharp">public class User
{
    [JsonProperty("accounts")]
    public Account Accounts { get; set; }

    // 其他User属性此处省略,以简洁起见
}

public class Account
{
    public string github { get; set; }
}</code>

Durch die Verwendung des JsonProperty-Attributs und die Deklaration der Accounts-Eigenschaft als bestimmtes Account-Objekt wird die Deserialisierung das JSON-Objekt für diese Eigenschaft korrekt verarbeiten.

Das obige ist der detaillierte Inhalt vonWie deserialisiere ich JSON mithilfe von JsonConvert.DeserializeObject ordnungsgemäß in eine C#-POCO-Klasse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn