[英]Getting "because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly" error when deserializing a Json object
[英]not able to convert json string into c# object , getting error- because the type requires a JSON array
我想將 json 數據轉換為 C#,我在將 json 字符串轉換為 C# 對象時出錯。
代碼
List<Root> list = new List<Root>();
list = JsonConvert.DeserializeObject<List<Root>>(jsonString);
json數據
{
"Set1": [
{
"TotalColumns": "5",
"Header": "Date",
"DataType": "DateTime",
"MaxLength": "8"
},
{
"TotalColumns": "5",
"Header": "Code",
"DataType": "Int",
"MaxLength": "6"
},
{
"TotalColumns": "5",
"Header": "Description",
"DataType": "String",
"MaxLength": "500"
},
{
"TotalColumns": "5",
"Header": "Qty",
"DataType": "Int",
"MaxLength": "6"
},
{
"TotalColumns": "5",
"Header": "Amount",
"DataType": "Double",
"MaxLength": "100"
}
]
}
C# 類
public class Set1
{
public string TotalColumns { get; set; }
public string Header { get; set; }
public string DataType { get; set; }
public string MaxLength { get; set; }
}
public class Root
{
public List<Set1> Set1 { get; set; }
}
錯誤
將當前 JSON 對象(例如 {"name":"value"})反序列化為類型 'System.Collections.Generic.List`1[....Root]' 因為該類型需要 JSON 數組
您實際上是在嘗試將 JSON 轉換為List<Root>
,但 JSON 不包含Root
類的數組。
您可以做的是將您的 JSON 反序列化為Root
實例而不是List<Root>
,但如果您絕對想將其反序列化為List<Root>
,那么您的問題出在生成 JSON 的代碼中,它不會t 序列化一個List
但一個Root
實例。
你有 2 個變種
Root root = JsonConvert.DeserializeObject<Root>(jsonString);
List<Set1> Set1 = JObject.Parse(jsonString)["Set1"].ToObject<List<Set1>>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.