Détails
Comment transformer un objet C# en une chaîne JSON en .NET ?
J'ai des cours comme ceux-là :
class MyDate
{
int year, month, day;
}
class Lad
{
string firstName;
string lastName;
MyDate dateOfBirth;
}
Et je voudrais transformer un objet Lad
en une chaîne JSON comme celle-ci :
{
"firstName":"Markoff",
"lastName":"Chaney",
"dateOfBirth":
{
"year":"1901",
"month":"4",
"day":"30"
}
}
(sans la mise en forme). J'ai trouvé [ce lien][1], mais il utilise un espace de noms qui n'est pas dans .NET 4. J'ai également entendu parler de [JSON.NET][2], mais leur site semble être en panne en ce moment, et je n'ai pas envie d'utiliser des fichiers DLL externes. Existe-t-il d'autres options que la création manuelle d'un rédacteur de chaînes JSON ?
[1] : http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer(v=vs.110).aspx [2] : http://james.newtonking.com/projects/json-net.aspx
859
3
Puisque nous aimons tous les one liners
... celui-ci dépend du paquet NuGet de Newtonsoft, qui est populaire et meilleur que le sérialiseur par défaut.
Documentation : [Sérialisation et désérialisation de JSON][1]
[1] : http://www.newtonsoft.com/json/help/html/SerializingJSON.htm
Vous pouvez utiliser la classe [
JavaScriptSerializer
][1] (ajoutez la référence àSystem.Web.Extensions
) :Un exemple complet :
[1] : https://docs.microsoft.com/en-us/dotnet/api/system.web.script.serialization.javascriptserializer
Utilisez la classe
DataContractJsonSerializer
: MSDN1, MSDN2.Mon exemple : ICI.
Il peut aussi désérialiser en toute sécurité des objets à partir d'une chaîne JSON, contrairement à
JavaScriptSerializer
. Mais personnellement, je préfère encore Json.NET.