Minulla on tällaisia kursseja:
class MyDate
{
int year, month, day;
}
class Lad
{
string firstName;
string lastName;
MyDate dateOfBirth;
}
Ja haluaisin muuttaa Lad
-olion JSON-merkkijonoksi näin:
{
"firstName":"Markoff",
"lastName":"Chaney",
"dateOfBirth":
{
"year":"1901",
"month":"4",
"day":"30"
}
}
(ilman muotoilua). Löysin tämän linkin, mutta se käyttää nimiavaruutta, jota ei ole .NET 4:ssä. Kuulin myös JSON.NET, mutta heidän sivustonsa näyttää olevan tällä hetkellä alhaalla, enkä halua käyttää ulkoisia DLL-tiedostoja. Onko muita vaihtoehtoja kuin JSON-merkkijonon kirjoittajan luominen manuaalisesti?
Koska me kaikki rakastamme yhden lauseen repliikkejä
... tämä on riippuvainen Newtonsoftin NuGet-paketista, joka on suosittu ja parempi kuin oletusserialisaattori.
Newtonsoft.Json.JsonConvert.SerializeObject(new {foo = "bar"})
Dokumentaatio: JSON:n serialisointi ja deserialisointi.
Voit käyttää JavaScriptSerializer
-luokkaa (lisää viittaus System.Web.Extensions
-luokkaan):
using System.Web.Script.Serialization;
var json = new JavaScriptSerializer().Serialize(obj);
Täydellinen esimerkki:
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);
}
}
Käytä DataContractJsonSerializer
-luokkaa: MSDN1, MSDN2.
Oma esimerkkini: TÄSSÄ.
Se voi myös turvallisesti deserialisoida objekteja JSON-merkkijonosta, toisin kuin JavaScriptSerializer
. Mutta itse pidän silti enemmän Json.NET.