Böyle derslerim var:
class MyDate
{
int year, month, day;
}
class Lad
{
string firstName;
string lastName;
MyDate dateOfBirth;
}
Ve bir Lad
nesnesini aşağıdaki gibi bir JSON dizesine dönüştürmek istiyorum:
{
"firstName":"Markoff",
"lastName":"Chaney",
"dateOfBirth":
{
"year":"1901",
"month":"4",
"day":"30"
}
}
(biçimlendirme olmadan). Bu bağlantıyı]1 buldum, ancak .NET 4'te olmayan bir ad alanı kullanıyor. Ayrıca JSON.NET'i de duydum, ancak siteleri şu anda kapalı görünüyor ve harici DLL dosyaları kullanmaya hevesli değilim. Elle bir JSON string writer oluşturmak dışında başka seçenekler var mı?
Hepimiz tek bir cümleyi sevdiğimiz için
... bu, popüler olan ve varsayılan serileştiriciden daha iyi olan Newtonsoft NuGet paketine bağlıdır.
Newtonsoft.Json.JsonConvert.SerializeObject(new {foo = "bar"})
Dokümantasyon: JSON Serileştirme ve Serileştirmeyi Kaldırma
JavaScriptSerializer][1] sınıfını kullanabilirsiniz (
System.Web.Extensions` referansını ekleyin):
using System.Web.Script.Serialization;
var json = new JavaScriptSerializer().Serialize(obj);
Tam bir örnek:
using System;
using System.Web.Script.Serialization;
public class MyDate
{
public int year;
public int month;
public int day;
}
public class Lad
{
public string firstName;
public string lastName;
public MyDate dateOfBirth;
}
class Program
{
static void Main()
{
var obj = new Lad
{
firstName = "Markoff",
lastName = "Chaney",
dateOfBirth = new MyDate
{
year = 1901,
month = 4,
day = 30
}
};
var json = new JavaScriptSerializer().Serialize(obj);
Console.WriteLine(json);
}
}
DataContractJsonSerializer` sınıfını kullanın: MSDN1, MSDN2.
Benim örneğim: BURADA.
Ayrıca JavaScriptSerializer
dan farklı olarak bir JSON dizesinden nesneleri güvenli bir şekilde soyutlayabilir. Ancak kişisel olarak ben hala Json.NET'i tercih ediyorum.