Nekem is vannak ilyen óráim:
class MyDate
{
int year, month, day;
}
class Lad
{
string firstName;
string lastName;
MyDate dateOfBirth;
}
És szeretnék egy Lad
objektumot egy ilyen JSON sztringgé alakítani:
{
"firstName":"Markoff",
"lastName":"Chaney",
"dateOfBirth":
{
"year":"1901",
"month":"4",
"day":"30"
}
}
(formázás nélkül). Találtam ezt a linket, de olyan névteret használ, amely nincs benne a .NET 4-ben. Hallottam a JSON.NET-ről is, de az oldaluk úgy tűnik, hogy jelenleg nem elérhető, és nem szeretnék külső DLL fájlokat használni. Vannak más lehetőségek a JSON string író kézi létrehozásán kívül?
Mert mindannyian szeretjük az egysorosokat
... ez a Newtonsoft NuGet csomagjától függ, ami népszerű és jobb, mint az alapértelmezett serializer.
Newtonsoft.Json.JsonConvert.SerializeObject(new {foo = "bar"})
Dokumentáció: JSON szerializálása és deserializálása
Használhatja a JavaScriptSerializer
osztályt (adjon hozzá hivatkozást a System.Web.Extensions
osztályra):
using System.Web.Script.Serialization;
var json = new JavaScriptSerializer().Serialize(obj);
Egy teljes példa:
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);
}
}
Használja az DataContractJsonSerializer
osztályt: MSDN1, MSDN2.
Az én példám: ITT.
A JavaScriptSerializerrel
ellentétben képes biztonságosan deserializálni objektumokat JSON stringből is. De személy szerint én még mindig jobban szeretem a Json.NET.