Existe-t-il un moyen intégré dans .Net AJAX pour sérialiser manuellement un objet en chaîne JSON ?

StackOverflow https://stackoverflow.com/questions/35106

Question

J'ai trouvé ScriptingJsonSerializationSection mais je ne sais pas comment l'utiliser.Je pourrais écrire une fonction pour convertir manuellement l'objet en chaîne JSON, mais comme .Net peut le faire à la volée avec le <System.Web.Services.WebMethod()> et <System.Web.Script.Services.ScriptMethod()> attributs donc il doit y avoir un moyen intégré qui me manque.

PS :en utilisant Asp.Net 2.0 et VB.Net - j'ai mis cela dans les balises mais je pense que les gens l'ont manqué.

Était-ce utile?

La solution

Cela devrait faire l'affaire

Dim jsonSerialiser As New System.Web.Script.Serialization.JavaScriptSerializer
Dim jsonString as String = jsonSerialiser.Serialize(yourObject)

Autres conseils

Je pense que ce que vous recherchez, c'est cette classe :

System.ServiceModel.Web.DataContractJsonSerializer

Voici un exemple de Rick Strahl : DataContractJsonSerializer dans .NET 3.5

Étant donné que la classe JavaScriptSerializer est techniquement obsolète, je crois DataContractJsonSerializer est la solution préférable si vous utilisez la version 3.0+.

Eh bien, j'utilise actuellement les méthodes d'extension suivantes pour sérialiser et désérialiser des objets :

using System.Web.Script.Serialization;

public static string ToJSON(this object objectToSerialize)
{
  JavaScriptSerializer jss = new JavaScriptSerializer();
  return jss.Serialize(objectToSerialize);
}

/// <typeparam name="T">The type we are deserializing the JSON to.</typeparam>
public static T FromJSON<T>(this string json)
{
  JavaScriptSerializer jss = new JavaScriptSerializer();
  return jss.Deserialize<T>(json);
}

Je l'utilise pas mal - soyez prévenu, cette implémentation est un peu naïve (c'est-à-direil existe des problèmes potentiels, en fonction de ce que vous sérialisez et de la manière dont vous l'utilisez sur le client, en particulier avec DateTimes).

Dans l'assembly System.Web.Extensions, version 3.5.0.0, il existe un JavaScriptSérialiseur classe qui devrait gérer ce que vous voulez.

Essayer

System.Web.Script.Serialization.JavaScriptSerializer

ou Découvrez JSON.org il existe toute une liste de bibliothèques écrites pour faire exactement ce que vous voulez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top