liste de conversion au format json - rapide et facile
Disons que j'ai un objet Monobjet qui ressemble à ceci:
public class MyObject
{
int ObjectID {get;set;}
string ObjectString {get;set;}
}
J'ai une liste de MyObject et je suis à la recherche pour le convertir en une chaîne json avec un stringbuilder. Je sais comment créer un JavascriptConverter et de créer une chaîne json par le passage d'une liste et d'avoir le convertisseur de construire la chaîne mais dans ce cas particulier, je suis à la recherche pour éviter la surcharge et aller directement à une chaîne json avec une boucle foreach sur la liste comme ceci:
StringBuilder JsonString = new StringBuilder();
foreach(MyObject TheObject in ListOfMyObject)
{
}
J'ai essayé d'utiliser cette méthode en ajoutant avec des virgules et des citations, mais il n'a pas bien fonctionné (encore).
Merci pour vos suggestions.
- Notez que dans un projet WPF, vous devez ajouter une référence à
System.Web.Extensions
à utiliserSystem.Web.Script.Serialization
: stackoverflow.com/a/18746092/1599699 stackoverflow.com/a/19299695/1599699
Vous devez vous connecter pour publier un commentaire.
J'ai fait quelque chose comme avant à l'aide de la JavaScript sérialisation de la classe:
Et:
3 ans d'expérience plus tard, je suis venu à cette question et vous propose de l'écrire comme ceci:
Une seule ligne de code.
Pour moi, il a travaillé à utiliser Newtonsoft.Json:
Je voudrais éviter de rouler votre propre et utiliser soit:
Système.Web.Script.JavascriptSerializer
ou
JSON.net
Les deux font un excellent travail 🙂
Je préfère l'utilisation de linq-to-json fonction de JSON.NET cadre. Voici comment vous pouvez sérialiser une liste de vos objets json.
Vous pleinement en contrôle de ce qui sera dans le résultat d'une chaîne json et vous voyez clairement que c'simplement en regardant le code. Sûrement, vous pouvez vous débarrasser de
Func<T1, T2>
de déclaration et de préciser ce code directement dans lenew JArray()
invocation, mais avec ce code, extrait deFunc<>
il semble beaucoup plus claire de ce qui se passe et comment vous réellement transformer votre objet en json. Vous pouvez même stocker vosFunc<>
en dehors de cette méthode dans une sorte de méthode de configuration (c'est à dire dans le constructeur).pourquoi réinventer la roue? utilisation microsoft json sérialiser ou d'un 3ème partie de la bibliothèque comme json.NET
Vous pouviez retourner de la valeur à l'aide de
retour JsonConvert.SerializeObject(objName);
Et de l'envoyer à l'extrémité avant