Heim > Backend-Entwicklung > C++ > Wie ordne ich JSON-Feldnamen .NET-Objekteigenschaften mithilfe von JavaScriptSerializer oder DataContractJsonSerializer zu?

Wie ordne ich JSON-Feldnamen .NET-Objekteigenschaften mithilfe von JavaScriptSerializer oder DataContractJsonSerializer zu?

Mary-Kate Olsen
Freigeben: 2025-01-10 09:04:42
Original
614 Leute haben es durchsucht

How to Map JSON Field Names to .NET Object Properties Using JavaScriptSerializer or DataContractJsonSerializer?

JSON-Feldnamen zu .NET-Objekteigenschaften zuordnen

Das Parsen von JSON-Daten in .NET-Objekte erfordert häufig die Zuordnung von JSON-Feldnamen zu entsprechenden Objekteigenschaften. Dies ist von entscheidender Bedeutung, wenn sich JSON-Feldnamen von .NET-Eigenschaftsnamen unterscheiden. Obwohl JavaScriptSerializer.Deserialize praktisch erscheinen mag, werden Namenskonflikte nicht immer zuverlässig behandelt. Eine robustere Lösung verwendet DataContractJsonSerializer.

Verwendung von DataContractJsonSerializer für zuverlässige Zuordnung

DataContractJsonSerializer bietet eine präzise Kontrolle über die Feldnamenzuordnung über das Attribut DataMember. So geht's:

<code class="language-csharp">[DataContract]
public class DataObject
{
    [DataMember(Name = "user_id")]
    public int UserId { get; set; }

    [DataMember(Name = "detail_level")]
    public string DetailLevel { get; set; }
}</code>
Nach dem Login kopieren

Dieser Code definiert eine DataObject-Klasse. Das DataMember-Attribut ordnet die JSON-Felder „user_id“ und „detail_level“ explizit den .NET-Eigenschaften UserId bzw. DetailLevel zu.

Deserialisierung ist dann unkompliziert:

<code class="language-csharp">DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(DataObject));
MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(JsonData));
DataObject dataObject = serializer.ReadObject(ms) as DataObject;</code>
Nach dem Login kopieren

Dieses Code-Snippet deserialisiert die JSON-Daten (JsonData) in eine DataObject Instanz.

Überlegungen:

  • Obwohl DataContractJsonSerializer im Vergleich zu JavaScriptSerializer bessere Zuordnungsfunktionen bietet, ist es möglicherweise etwas ausführlicher.
  • Für DetailLevel-Eigenschaften, die als Aufzählungen definiert sind, kann ein benutzerdefiniertes DataContractResolver die Wertezuordnung erleichtern.
  • DataContractJsonSerializer ist auch mit Silverlight kompatibel.

Das obige ist der detaillierte Inhalt vonWie ordne ich JSON-Feldnamen .NET-Objekteigenschaften mithilfe von JavaScriptSerializer oder DataContractJsonSerializer zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage