La conversion de type dynamique de dictionnaire C#
J'ai un objet dynamique qui ressemble à ça,
{
"2" : "foo",
"5" : "bar",
"8" : "foobar"
}
Comment puis-je convertir cette dictionary
?
Cela ressemble à du JSON. Vous êtes à la recherche pour le JSON désérialisation dans un
Vous pouvez utiliser Linq méthode du Groupe. Coup d'oeil ici: code.msdn.microsoft.com/LINQ-to-DataSets-Grouping-c62703ea
quel objet s'agit-il? Chaîne JSON? ou objet JSON? ou de la Liste de KeyValuePair? ou autre chose??
Effectivement, c'est un produit d'un JSON deserilization. Fait comme ceci: Dictionnaire<string, dynamique> valeurs = JsonConvert.DeserializeObject<Dictionnaire<string, dynamique>>(json) Le "json" dans la question, la valeur qui a été fourré dans mon dictionnaire
Dictionary<K,V>
?Vous pouvez utiliser Linq méthode du Groupe. Coup d'oeil ici: code.msdn.microsoft.com/LINQ-to-DataSets-Grouping-c62703ea
quel objet s'agit-il? Chaîne JSON? ou objet JSON? ou de la Liste de KeyValuePair? ou autre chose??
Effectivement, c'est un produit d'un JSON deserilization. Fait comme ceci: Dictionnaire<string, dynamique> valeurs = JsonConvert.DeserializeObject<Dictionnaire<string, dynamique>>(json) Le "json" dans la question, la valeur qui a été fourré dans mon dictionnaire
OriginalL'auteur Kristian Nissen | 2014-02-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
RouteValueDictionary
pour convertir un objet de C# pour un dictionnaire. Voir: RouteValueDictionary Classe - MSDN. Il convertitobject
propriétés de paires clé-valeur.L'utiliser comme ceci:
OriginalL'auteur annemartijn
Si la dynamique de la valeur en question a été créé par la désérialisation de Json.Net comme vous l'avez mentionné dans vos commentaires, alors il devrait être un
JObject
. Il s'avère queJObject
implémente déjàIDictionary<string, JToken>
, de sorte que vous pouvez l'utiliser comme un dictionnaire sans conversion, comme indiqué ci-dessous:Si vous préférez un
Dictionary<string, string>
au lieu de cela, vous pouvez convertir comme ceci:OriginalL'auteur Brian Rogers
Vous pouvez remplir le dictionnaire à l'aide de la réflexion:
OriginalL'auteur ema
Vous pouvez utiliser Json.Net à désérialiser de dictionnaire.
string json = dynamicObject.ToString()
n'a pas marché. Vous avez besoinstring json = JsonConvert.SerializeObject(dynamicObject);
OriginalL'auteur Wasif Hossain
Un autre moyen est d'utiliser le Système.Web.Les aides.Json inclus dans .NET 4.5.
Json.Coder(objet) et Json.Décoder. Comme:
MSDN: https://msdn.microsoft.com/en-us/library/gg547931(v=vs. 111).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1
Ce qui concerne,
MarianoC.
System.Web.Helpers
n'est pas inclus dans .NET 4.5.OriginalL'auteur MarianoC
Vous pouvez le faire avec jsonSerializer. Et il nécessite Système.Net.Les Extensions de référence. Voici un exemple de code.
OriginalL'auteur Anıl Canlı