Liersch.JsonSerialization – Reflection-basierte JSON-Unterstützung für .NET

Liersch.JsonSerialization erweitert Liersch.Json um die Reflection-basierte Serialisierung und Deserialisierung. Auf Basis von Liersch.Reflection werden dabei Felder und Eigenschaften durch dynamisch generierten IL-Code effizient gelesen und geschrieben.

Die Bibliothek ist für folgende .NET-Plattformen geeignet:

  • ab .NET Framework 2.0
  • ab .NET Core 2.0
  • ab .NET Standard 2.1
  • Mono

Alle nennenswerten Bibliotheksänderungen werden in der Datei CHANGELOG.md festgehalten.

Verwendung der Bibliothek

Liersch.JsonSerialization ist auf NuGet verfügbar und kann über diesen Wege komfortabel in neue oder bestehende Projekte integriert werden. Für ältere Projekte (vor .NET Framework 4.0) müssen die Bibliothek und ihre abhängigen Bibliotheken manuell kompiliert und integriert werden.

JsonSerializer und JsonDeserializer

Die Klassen JsonSerializer und JsonDeserializer dienen zur Reflection-basierten Serialisierung und Deserialisierung von Klassen. Dafür müssen Felder und Eigenschaften lediglich mit dem Attribut JsonMemberAttribute gekennzeichnet werden. Nur öffentliche Felder und Eigenschaften sollten mit diesem Attribut markiert werden. Für die Deserialisierung wird ein öffentlicher Standardkonstruktor benötigt.

class Example
{
  [JsonMember("IntegerArray")]
  public int[] IntegerArray;

  [JsonMember("StringValue")]
  public string StringValue;

  public string NotSerializedString;
}

Im folgenden Beispiel wird eine Instanz einer serialisierbaren Klasse erstellt, serialisiert und wieder deserialisiert.

var e1=new Example();
e1.IntegerArray=new int[] { 10, 20, 30, 700, 800 };
e1.StringValue="Example Text";
e1.NotSerializedString="Other Text";

string json=new JsonSerializer().Serialize(e1);
Example e2=new JsonDeserializer().Deserialize<Example>(json);

Lizenz

Die Veröffentlichung der Software erfolgt unter den Bedingungen einer Open-Source-Lizenz. Alternativ können im Rahmen einer kommerziellen Lizenz andere Bedingungen vereinbart werden. Sie können Pflege und Weiterentwicklung der Software mit einer freiwilligen Spende unterstützen.

Copyright

Copyright © 2013-2021 Steffen Liersch
https://www.steffen-liersch.de/

Verweise

Der Quellcode wird auf GitHub gepflegt:
https://github.com/steffen-liersch/Liersch.JsonSerialization

Pakete können über NuGet heruntergeladen werden:
https://www.nuget.org/packages/Liersch.JsonSerialization

Ähnliche Artikel

Schreiben Sie einen Kommentar