Utilisation de System.Json pour des projets autres que Silverlight?

Une idée sur la façon de le faire? Si ce n’est pas possible, qu’est-ce qu’une bonne bibliothèque JSON pour C #?

Json.NET est une excellente bibliothèque .NET json. Supporte LINQ, lit / écrit et convertit des objects vers et depuis json.

System.Json est maintenant disponible dans les projets autres que Silverlight via NuGet (le système de gestion de paquets .Net) et devrait être publié dans le cadre principal de vnext. Le paquet NuGet s’appelle JsonValue .

Imaginons que nous ayons le JSON suivant dans la variable de chaîne json :

 [{"a":"foo","b":"bar"},{"a":"another foo","b":"another bar"}] 

On peut obtenir écrire la valeur “une autre barre” sur la console en utilisant le code suivant:

 using System.Json; dynamic jsonObj = JsonValue.Parse(json); var node = jsonObj[1].b; System.Console.WriteLine(node.Value); 

Voici une méthode d’extension pour sérialiser toute instance d’object en JSON:

 public static class GenericExtensions { public static ssortingng ToJsonSsortingng(this T input) { ssortingng json; DataContractJsonSerializer ser = new DataContractJsonSerializer(input.GetType()); using (MemoryStream ms = new MemoryStream()) { ser.WriteObject(ms, input); json = Encoding.Default.GetSsortingng(ms.ToArray()); } return json; } } 

Vous devez append une référence à System.ServiceModel.Web pour utiliser DataContractSerializer.

Si vous recherchez uniquement l’encodage / décodage JSON, il existe une bibliothèque d’extension System.Web officielle de Microsoft qui le fait, il y a de fortes chances que vous ayez déjà cet assemblage (System.Web.Extensions):

http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx

Exemple:

 using System; using System.Web.Script.Serialization; class App { static void Main(ssortingng[] args = null) { JavaScriptSerializer jss = new JavaScriptSerializer(); Ssortingng sJson = "{\"Name\": \"Your name\"}"; DesJson json = jss.Deserialize(sJson); Console.WriteLine(json.Name); } } class DesJson { public ssortingng Name {get; set;} } 

Une autre option consiste à utiliser l’implémentation System.Json de Mono. J’ai été en mesure de l’installer en C # 2.0 avec quelques modifications mineures.

Vous pouvez simplement télécharger mon projet C # 2.0 à partir d’ ici .