Saya memiliki kelas seperti ini:
class MyDate
{
int year, month, day;
}
class Lad
{
string firstName;
string lastName;
MyDate dateOfBirth;
}
Dan saya ingin mengubah Lad
objek menjadi string JSON seperti ini:
{
"firstName":"Markoff",
"lastName":"Chaney",
"dateOfBirth":
{
"year":"1901",
"month":"4",
"day":"30"
}
}
(tanpa format). Saya menemukan tautan ini , tetapi menggunakan namespace yang tidak ada dalam .NET 4 . Saya juga mendengar tentang JSON.NET , tetapi situs mereka tampaknya turun saat ini, dan saya tidak tertarik menggunakan file DLL eksternal.
Apakah ada opsi lain selain membuat penulis string JSON secara manual ?
c#
.net
json
serialization
Hui
sumber
sumber
Jawaban:
Anda dapat menggunakan
JavaScriptSerializer
kelas (tambahkan referensi keSystem.Web.Extensions
):Contoh lengkap:
sumber
classes
kejson
format yang, harapan membantu seseorang.System.Web.Extensions
, Anda harus memilikiASP.NET AJAX 1.0
atauASP.NET 3.5
menginstal pada sistem Anda. Silakan lihat stackoverflow.com/questions/7723489/…Karena kita semua suka one-liners
... yang ini tergantung pada paket Newtonsoft NuGet, yang populer dan lebih baik daripada serializer default.
Dokumentasi: Melakukan Serialisasi dan Deserialisasi JSON
sumber
Gunakan perpustakaan Json.Net , Anda dapat mengunduhnya dari Nuget Packet Manager.
Serializing ke Json String:
Deserializing to Object:
sumber
Gunakan
DataContractJsonSerializer
kelas: MSDN1 , MSDN2 .Contoh saya: DI SINI .
Itu juga dapat dengan aman mensterilisasi objek dari string JSON, tidak seperti
JavaScriptSerializer
. Tetapi secara pribadi saya masih lebih suka Json.NET .sumber
Anda dapat mencapai ini dengan menggunakan Newtonsoft.json. Instal Newtonsoft.json dari NuGet. Lalu:
sumber
Wooou! Benar-benar lebih baik menggunakan kerangka JSON :)
Berikut adalah contoh saya menggunakan Json.NET ( http://james.newtonking.com/json ):
Ujian:
Hasil:
Sekarang saya akan mengimplementasikan metode konstruktor yang akan menerima string JSON dan mengisi bidang kelas.
sumber
Serializer JSON baru tersedia di
System.Text.Json
namespace. Ini termasuk dalam .NET Core 3.0 bersama kerangka dan dalam paket NuGet untuk proyek-proyek yang menargetkan .NET Standard atau .NET Framework atau .NET Core 2.x.Kode contoh:
Dalam contoh ini, kelas yang akan diserialisasi memiliki properti dan bukan bidang; yang
System.Text.Json
serializer saat ini tidak ladang tidak cerita bersambung.Dokumentasi:
sumber
Jika mereka tidak terlalu besar, apa kemungkinan kasus Anda mengekspornya sebagai JSON.
Ini juga membuatnya portabel di antara semua platform.
sumber
Jika Anda menggunakan pengontrol web ASP.NET MVC, sesederhana:
Tidak percaya tidak ada yang menyebutkan ini.
sumber
Saya akan memilih Serializer JSON ServiceStack:
Ini juga merupakan serializer JSON tercepat yang tersedia untuk .NET: http://www.servicestack.net/benchmarks/
sumber
Gunakan kode di bawah ini untuk mengonversi XML ke JSON.
sumber
Gunakan alat ini untuk menghasilkan kelas C #, dan kemudian gunakan kode ini untuk membuat serial objek Anda:
sumber
Ini semudah ini (ini berfungsi untuk objek dinamis juga (ketik objek)):
sumber
Serializer
Obyek
Penerapan
Keluaran
sumber