J'ai des cours comme ceux-ci:
class MyDate
{
int year, month, day;
}
class Lad
{
string firstName;
string lastName;
MyDate dateOfBirth;
}
Et je voudrais transformer un Lad
objet en une chaîne JSON comme ceci:
{
"firstName":"Markoff",
"lastName":"Chaney",
"dateOfBirth":
{
"year":"1901",
"month":"4",
"day":"30"
}
}
(sans le formatage). J'ai trouvé ce lien , mais il utilise un espace de noms qui n'est pas dans .NET 4 . J'ai également entendu parler de JSON.NET , mais leur site semble être en panne pour le moment, et je ne suis pas désireux 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 ?
c#
.net
json
serialization
Hui
la source
la source
Réponses:
Vous pouvez utiliser la
JavaScriptSerializer
classe (ajouter une référence àSystem.Web.Extensions
):Un exemple complet:
la source
classes
aujson
format espoir aide quelqu'un.System.Web.Extensions
, vous devez avoirASP.NET AJAX 1.0
ouASP.NET 3.5
installé sur votre système. Veuillez voir ce stackoverflow.com/questions/7723489/…Puisque nous aimons tous les monoplaces
... celui-ci dépend du package Newtonsoft NuGet, qui est populaire et meilleur que le sérialiseur par défaut.
Documentation: Sérialisation et désérialisation JSON
la source
Utilisez la bibliothèque Json.Net , vous pouvez la télécharger depuis Nuget Packet Manager.
Sérialisation vers Json String:
Désérialisation en objet:
la source
Utilisez la
DataContractJsonSerializer
classe: MSDN1 , MSDN2 .Mon exemple: ICI .
Contrairement à, il peut également désérialiser en toute sécurité des objets d'une chaîne JSON
JavaScriptSerializer
. Mais personnellement, je préfère toujours Json.NET .la source
Vous pouvez y parvenir en utilisant Newtonsoft.json. Installez Newtonsoft.json à partir de NuGet. Et alors:
la source
Wooou! Vraiment mieux en utilisant un framework JSON :)
Voici mon exemple d'utilisation de Json.NET ( http://james.newtonking.com/json ):
Le test:
Le résultat:
Maintenant, je vais implémenter la méthode constructeur qui recevra une chaîne JSON et remplira les champs de la classe.
la source
Un nouveau sérialiseur JSON est disponible dans l'
System.Text.Json
espace de noms. Il est inclus dans le framework partagé .NET Core 3.0 et se trouve dans un package NuGet pour les projets qui ciblent .NET Standard ou .NET Framework ou .NET Core 2.x.Exemple de code:
Dans cet exemple, les classes à sérialiser ont des propriétés plutôt que des champs;
System.Text.Json
actuellement, le sérialiseur ne sérialise pas les champs.Documentation:
la source
S'ils ne sont pas très gros, quel est probablement votre cas, exportez-le en JSON.
Cela le rend également portable sur toutes les plates-formes.
la source
Si vous êtes dans un contrôleur Web ASP.NET MVC, c'est aussi simple que:
Je ne peux pas croire que personne n'ait mentionné cela.
la source
Je voterais pour le sérialiseur JSON de ServiceStack:
C'est également le sérialiseur JSON le plus rapide disponible pour .NET: http://www.servicestack.net/benchmarks/
la source
Utilisez le code ci-dessous pour convertir XML en JSON.
la source
Utilisez ces outils pour générer une classe C #, puis utilisez ce code pour sérialiser votre objet:
la source
C'est aussi simple que cela (cela fonctionne aussi pour les objets dynamiques (type objet)):
la source
Sérialiseur
Objet
la mise en oeuvre
Production
la source