Convertir JObject dans Dictionnaire<string, object>. Est-il possible?

J'ai une web API méthode qui accepte un arbitraire de la charge utile json dans un JObject de la propriété. En tant que tel je ne sais pas ce qui est à venir, mais j'ai encore besoin de la convertir .Types de réseau. Je voudrais avoir un Dictionary<string,object> afin que je puisse traiter avec elle de toute façon je veux.

J'ai beaucoup cherché, mais impossible de trouver quoi que ce soit et il a fini par démarrer un désordre méthode pour faire cette conversion, touche par touche, valeur par valeur. Est-il un moyen facile de le faire?

Input ->

JObject person = new JObject(
    new JProperty("Name", "John Smith"),
    new JProperty("BirthDate", new DateTime(1983, 3, 20)),
    new JProperty("Hobbies", new JArray("Play football", "Programming")),
    new JProperty("Extra", new JObject(
        new JProperty("Foo", 1),
        new JProperty("Bar", new JArray(1, 2, 3))
    )
)

Merci!

  • De deux choses, JObject implémente déjà Dictionnaire<string, JToken>. Et à la question, quelle est votre intention de traiter avec des sous-propriétés. Serait-ce de la valeur dans votre Dictionnaire être un autre Dictionnaire<string, ?>?
  • Oui @Riches, sous propriétés vont être un autre Dictionnaire<string, object>
  • Voir aussi Comment dois-je utiliser JSON.NET pour désérialiser en imbriquée/récursive de Dictionnaire et la Liste?. Le ToObject(JToken) helper dans la première réponse permettra de faire la conversion avec un minimum de code.
InformationsquelleAutor tucaz | 2013-02-15