Ich habe diesen 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"
}
]
Und ich habe diese Klassen:
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; }
}
Ich versuche, den obigen JSON mit dem folgenden Code zu deserialisieren:
var objResponse1 = JsonConvert.DeserializeObject<RetrieveMultipleResponse>(JsonStr);
aber ich bekomme diesen Fehler:
Das aktuelle JSON-Array (z. B. [1,2,3]) kann nicht in den Typ 'test.Model.RetrieveMultipleResponse' deserialisiert werden, da für den Typ ein JSON-Objekt (z. B. {"name": "value"}) erforderlich ist, um die Deserialisierung korrekt durchzuführen. Um diesen Fehler zu beheben, ändern Sie entweder den JSON in ein JSON-Objekt (z. B. {"name": "value"}) oder den deserialisierten Typ in ein Array oder einen Typ, der eine Auflistungsschnittstelle (z. B. ICollection, IList) wie List implementiert von einem JSON-Array deserialisiert werden. JsonArrayAttribute kann dem Typ auch hinzugefügt werden, um die Deserialisierung von einem JSON-Array zu erzwingen. Pfad '', Zeile 1, Position 1.