474 votes

Désérialiser json objet en objet dynamique à l’aide de Json.net

Est il possible de renvoyer un objet dynamique d’une désérialisation json à l’aide de json.net ? Je voudrais faire quelque chose comme ceci :

596voto

Michael Pakhantsov Points 11344

dernière version de json.net permettent de faire ceci :

sortie :

Documentation ici : LINQ to JSON avec Json.NET

116voto

David Peden Points 3532

Json.NET 4.0 Release 1, il existe un support dynamique natif :

Et, bien sûr, la meilleure façon d’obtenir la version actuelle est via NuGet.

79voto

Joshua Peterson Points 66

Si vous désérialisez juste dynamique, vous obtiendrez un JObject retour. Vous pouvez obtenir ce que vous voulez à l’aide d’un ExpandoObject.

46voto

epitka Points 6258

Je sais c’est vieux post mais JsonConvert a fait une méthode différente, donc il serait

21voto

Phill Points 7558

Vous avez besoin d'avoir une sorte de type de désérialiser. Vous pourriez faire quelque chose le long des lignes de:

var product = new { Name = "", Price = 0 };
dynamic jsonResponse = JsonConvert.Deserialize(json, product.GetType());

Note: Ma réponse était basée sur une solution pour .NET 4.0 build en JSON sérialiseur.

Voici un lien pour désérialiser pour les types anonymes est ici:

http://blogs.msdn.com/b/alexghi/archive/2008/12/22/using-anonymous-types-to-deserialize-json-data.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X