J'ai ce JSON:
[
{
"Attributes": [
{
"Key": "Name",
"Value": {
"Value": "Acc 1",
"Values": [
"Acc 1"
]
}
},
{
"Key": "Id",
"Value": {
"Value": "1",
"Values": [
"1"
]
}
}
],
"Name": "account",
"Id": "1"
},
{
"Attributes": [
{
"Key": "Name",
"Value": {
"Value": "Acc 2",
"Values": [
"Acc 2"
]
}
},
{
"Key": "Id",
"Value": {
"Value": "2",
"Values": [
"2"
]
}
}
],
"Name": "account",
"Id": "2"
},
{
"Attributes": [
{
"Key": "Name",
"Value": {
"Value": "Acc 3",
"Values": [
"Acc 3"
]
}
},
{
"Key": "Id",
"Value": {
"Value": "3",
"Values": [
"3"
]
}
}
],
"Name": "account",
"Id": "2"
}
]
Et j'ai ces classes:
public class RetrieveMultipleResponse
{
public List<Attribute> Attributes { get; set; }
public string Name { get; set; }
public string Id { get; set; }
}
public class Value
{
[JsonProperty("Value")]
public string value { get; set; }
public List<string> Values { get; set; }
}
public class Attribute
{
public string Key { get; set; }
public Value Value { get; set; }
}
J'essaye de désérialiser le JSON ci-dessus en utilisant le code ci-dessous:
var objResponse1 = JsonConvert.DeserializeObject<RetrieveMultipleResponse>(JsonStr);
mais j'obtiens cette erreur:
Impossible de désérialiser le tableau JSON actuel (par exemple [1,2,3]) dans le type 'test.Model.RetrieveMultipleResponse' car le type nécessite un objet JSON (par exemple {"name": "value"}) pour désérialiser correctement. Pour corriger cette erreur, modifiez le JSON en objet JSON (par exemple {"name": "value"}) ou changez le type désérialisé en un tableau ou un type qui implémente une interface de collection (par exemple ICollection, IList) comme List qui peut être désérialisé d'un tableau JSON. JsonArrayAttribute peut également être ajouté au type pour le forcer à se désérialiser d'un tableau JSON. Chemin '', ligne 1, position 1.
Si l'on veut supporter les génériques (dans une méthode d'extension) c'est le modèle ...
Il est utilisé comme ceci:
MyClassType ressemble à ceci (doit correspondre aux paires nom-valeur du tableau JSON)
Utilisez NUGET pour télécharger Newtonsoft.Json, ajoutez une référence si nécessaire ...
la source
Je ne peux pas ajouter de commentaire à la solution mais cela n'a pas fonctionné pour moi. La solution qui a fonctionné pour moi a été d'utiliser:
Désérialisation du tableau JSON en objet .NET fortement typé
la source
travaillé!
la source
Utilisez ceci,
FrontData
est une chaîne JSON:et extraire la liste:
la source