Ich habe Klassen wie diese:
class MyDate
{
int year, month, day;
}
class Lad
{
string firstName;
string lastName;
MyDate dateOfBirth;
}
Und ich möchte ein Lad
Objekt wie folgt in einen JSON- String verwandeln :
{
"firstName":"Markoff",
"lastName":"Chaney",
"dateOfBirth":
{
"year":"1901",
"month":"4",
"day":"30"
}
}
(ohne die Formatierung). Ich habe diesen Link gefunden , aber er verwendet einen Namespace, der nicht in .NET 4 enthalten ist . Ich habe auch von JSON.NET gehört , aber die Website scheint momentan nicht verfügbar zu sein, und ich bin nicht daran interessiert, externe DLL-Dateien zu verwenden.
Gibt es neben dem manuellen Erstellen eines JSON- String- Writers noch andere Optionen ?
c#
.net
json
serialization
Hui
quelle
quelle
Antworten:
Sie können die
JavaScriptSerializer
Klasse verwenden (Verweis hinzufügen aufSystem.Web.Extensions
):Ein vollständiges Beispiel:
quelle
classes
zujson
Format, Hoffnung , jemand hilft.System.Web.Extensions
, auf den Sie verweisen müssen, müssen Sie auf Ihrem System habenASP.NET AJAX 1.0
oderASP.NET 3.5
installiert haben . Bitte sehen Sie diese stackoverflow.com/questions/7723489/…Da lieben wir alle Einzeiler
... dies hängt vom Newtonsoft NuGet-Paket ab, das beliebt und besser als der Standard-Serializer ist.
Dokumentation: Serialisieren und Deserialisieren von JSON
quelle
Verwenden Sie die Json.Net- Bibliothek, und laden Sie sie vom Nuget Packet Manager herunter.
Serialisierung zu Json String:
Deserialisieren zum Objekt:
quelle
Verwenden Sie die
DataContractJsonSerializer
Klasse: MSDN1 , MSDN2 .Mein Beispiel: HIER .
Im Gegensatz dazu kann es Objekte aus einer JSON-Zeichenfolge auch sicher deserialisieren
JavaScriptSerializer
. Aber ich persönlich bevorzuge immer noch Json.NET .quelle
Sie können dies mit Newtonsoft.json erreichen. Installieren Sie Newtonsoft.json von NuGet. Und dann:
quelle
Wooou! Wirklich besser mit einem JSON-Framework :)
Hier ist mein Beispiel mit Json.NET ( http://james.newtonking.com/json ):
Die Prüfung:
Das Ergebnis:
Jetzt werde ich die Konstruktormethode implementieren, die eine JSON-Zeichenfolge empfängt und die Felder der Klasse auffüllt.
quelle
Ein neuer JSON-Serializer ist im
System.Text.Json
Namespace verfügbar . Es ist im gemeinsam genutzten .NET Core 3.0-Framework enthalten und in einem NuGet-Paket für Projekte enthalten, die auf .NET Standard oder .NET Framework oder .NET Core 2.x abzielen.Beispielcode:
In diesem Beispiel haben die zu serialisierenden Klassen eher Eigenschaften als Felder. Der
System.Text.Json
Serializer serialisiert derzeit keine Felder.Dokumentation:
quelle
Wenn sie nicht sehr groß sind, exportieren Sie sie wahrscheinlich als JSON.
Dies macht es auch für alle Plattformen portabel.
quelle
Wenn Sie sich in einem ASP.NET MVC-Webcontroller befinden, ist dies so einfach wie:
Ich kann nicht glauben, dass niemand dies erwähnt hat.
quelle
Ich würde für den JSON Serializer von ServiceStack stimmen:
Es ist auch der schnellste JSON-Serializer für .NET: http://www.servicestack.net/benchmarks/
quelle
Verwenden Sie den folgenden Code zum Konvertieren von XML in JSON.
quelle
Verwenden Sie diese Tools zum Generieren einer C # -Klasse und verwenden Sie dann diesen Code, um Ihr Objekt zu serialisieren:
quelle
So einfach ist das (es funktioniert auch für dynamische Objekte (Typ Objekt)):
quelle
Serializer
Objekt
Implementierung
Ausgabe
quelle