ฉันมี 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"
}
]
และฉันมีชั้นเรียนเหล่านี้:
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; }
}
ฉันกำลังพยายามยกเลิกการกำหนดค่า JSON ด้านบนโดยใช้โค้ดด้านล่าง:
var objResponse1 = JsonConvert.DeserializeObject<RetrieveMultipleResponse>(JsonStr);
แต่ฉันได้รับข้อผิดพลาดนี้:
ไม่สามารถ deserialize อาร์เรย์ JSON ปัจจุบัน (เช่น [1,2,3]) ลงในประเภท 'test.Model.RetrieveMultipleResponse' ได้เนื่องจากประเภทนั้นต้องการออบเจ็กต์ JSON (เช่น {"name": "value"}) เพื่อแยกส่วนออกให้ถูกต้อง หากต้องการแก้ไขข้อผิดพลาดนี้ให้เปลี่ยน JSON เป็นออบเจ็กต์ JSON (เช่น {"name": "value"}) หรือเปลี่ยนประเภท deserialized เป็นอาร์เรย์หรือประเภทที่ใช้อินเทอร์เฟซการรวบรวม (เช่น ICollection, IList) เช่นรายการที่สามารถ ถูก deserialized จากอาร์เรย์ JSON นอกจากนี้ยังสามารถเพิ่ม JsonArrayAttribute ลงในประเภทเพื่อบังคับให้ deserialize จากอาร์เรย์ JSON เส้นทาง '' บรรทัด 1 ตำแหน่ง 1