2017-08-23 4 views
1

J'essaie de deserialise une chaîne JSONDeserialising JSON chaîne avec un objet JSON sérialisé dans la chaîne

string filter = @"[{""property"":""Student_PK"",""value"":""1""}]"; 

Ma première étape a consisté à

JsonConvert.DeserializeObject<Dictionary<string, string>>(filter) 

qui ne fonctionne pas. Cependant, j'ai ajouté une classe pour désérialiser l'objet.

public class filterObject 
{ 
    [JsonProperty("property")] 
    string property {get; set;} 

    [JsonProperty("value")] 
    Object value { get; set; } 
} 

exécutant ce qui suit également ne fonctionnait pas

JsonConvert.DeserializeObject<filterObject>(filter) 

Dans ce scénario, je n'ai pas le contrôle de la chaîne de filtre car cela est généré par Sencha. De quelle autre manière puis-je désérialiser cette chaîne JSON ainsi qu'accommoder plusieurs objets JSON (combinaison de valeurs de propriété) renvoyés dans une chaîne unique.

Répondre

0

Votre racine est un tableau d'objets et non un objet.

Essayez JsonConvert.DeserializeObject<Dictionary<string, string>[]>(filter)

Ou avec la seconde approche, il devrait être JsonConvert.DeserializeObject<filterObject[]>(filter)

+0

J'utilise 'JsonConvert.DeserializeObject []> (filtre)' J'ai ensuite ajouté un '.ToDictionary (c => c [" propriété "], c => c [" valeur "]) 'pour le convertir en' Dictionary user1015668

1

données dans le format du tableau JSON, donc sérialisation JSON avec la liste de la classe d'objets, essayez celui-ci,

JsonConvert.DeserializeObject<List<filterObject>>(filter); 
+0

L'utilisation de ce je ne pouvais pas récupérer la valeur de la propriété et de la valeur des clés. – user1015668