Je viens d'utiliser le XmlWriter pour créer du XML à renvoyer dans une réponse HTTP. Comment créeriez-vous une chaîne JSON. Je suppose que vous utiliseriez simplement un constructeur de chaînes pour créer la chaîne JSON et les formater votre réponse en JSON?
238
Réponses:
Vous pouvez utiliser la classe JavaScriptSerializer , consultez cet article pour créer une méthode d'extension utile.
Code de l'article:
Usage:
la source
L'utilisation de Newtonsoft.Json facilite vraiment les choses:
Documentation: Sérialisation et désérialisation JSON
la source
string json = JsonConvert.SerializeObject(new { "PropertyA" = obj.PropertyA });
."PropertyA"
êtrePropertyA
?string json = JsonConvert.SerializeObject(new { PropertyA = obj.PropertyA });
sans guillemets lePropertyA.
Cette bibliothèque est très bonne pour JSON de C #
http://james.newtonking.com/pages/json-net.aspx
la source
Utilisation simlpe des bibliothèques Newtonsoft.Json et Newtonsoft.Json.Linq .
la source
Cet extrait de code utilise le DataContractJsonSerializer de System.Runtime.Serialization.Json dans .NET 3.5.
la source
Jetez un œil à http://www.codeplex.com/json/ pour le projet json-net.aspx. Pourquoi réinventer la roue?
la source
Vous pouvez également essayer mon ServiceStack JsonSerializer, c'est le sérialiseur .NET JSON le plus rapide du moment. Il prend en charge la sérialisation de DataContracts, tout type POCO, interfaces, objets à liaison tardive, y compris les types anonymes, etc.
Exemple de base
Remarque: N'utilisez Microsofts JavaScriptSerializer que si les performances ne sont pas importantes pour vous car j'ai dû les laisser hors de mes repères car elles sont jusqu'à 40x-100x plus lentes que les autres sérialiseurs JSON.
la source
Si vous avez besoin d'un résultat complexe (intégré), créez votre propre structure:
puis vous pouvez obtenir une chaîne JSON avec appel
Le résultat sera comme ceci:
J'espère que ça aide!
la source
Si vous ne pouvez pas ou ne voulez pas utiliser les deux sérialiseurs JSON intégrés ( JavaScriptSerializer et DataContractJsonSerializer ), vous pouvez essayer la bibliothèque JsonExSerializer - je l'utilise dans un certain nombre de projets et fonctionne très bien.
la source
Si vous essayez de créer un service Web pour diffuser des données via JSON sur une page Web, envisagez d'utiliser la boîte à outils ASP.NET Ajax:
http://www.asp.net/learn/ajax/tutorial-05-cs.aspx
Il convertira automatiquement vos objets servis sur un service Web en json et créera la classe proxy que vous pouvez utiliser pour vous y connecter.
la source
Le DataContractJSONSerializer fera tout pour vous avec la même facilité que le XMLSerializer. Son trivial pour l'utiliser dans une application web. Si vous utilisez WCF, vous pouvez spécifier son utilisation avec un attribut. La famille DataContractSerializer est également très rapide.
la source
J'ai trouvé que vous n'avez pas du tout besoin du sérialiseur. Si vous renvoyez l'objet sous forme de liste. Permettez-moi d'utiliser un exemple.
Dans notre asmx, nous obtenons les données en utilisant la variable que nous avons transmise
Ensuite, en utilisant jquery, nous accédons au service en transmettant cette variable.
Et nous obtenons notre réponse.
la source
Encoder l'utilisation
Objet simple à JSON Array EncodeJsObjectArray ()
Résultat: [[29, "mike"], [5, "dummy"]]]
Jolie utilisation
Méthode d'impression de chaîne Pretty Print JSON Array PrettyPrintJson ()
Les résultats sont:
la source