我收到了一个JSON文件,其中包含一个根元素“users”和一个“user”项列表。
我正在尝试将json反序列化为名为List
的自定义类的User
,但我不断得到JsonSerializationException
,它无法覆盖它。
我尝试了以下内容:
代码:
public class User
{
public int ID { get; set; }
public bool Active { get; set; }
public string Name { get; set; }
}
public class Response
{
public List<User> Users { get; set; }
public JObject Exception { get; set; }
}
和 -
public Response DeserializeJSON(string json)
{
Response deserialized = JsonConvert.DeserializeObject<Response>(json);
return deserialized;
}
JSON:
{
"Users": {
"User": [
{
"id": "1",
"active": "true",
"name": "Avi"
},
{
"id": "2",
"active": "false",
"name": "Shira"
},
{
"id": "3",
"active": "false",
"name": "Moshe"
},
{
"id": "4",
"active": "false",
"name": "Kobi"
},
{
"id": "5",
"active": "true",
"name": "Yael"
}
]
}
}
抱歉造型不好!!
答案 0 :(得分:0)
在Response类中,尝试在构造函数中初始化集合。
public class Response
{
public Response()
{
Users = new List<User>();
}
public IEnumerable<User> Users { get; set; }
public JObject Exception { get; set; }
}
答案 1 :(得分:0)
啊,我需要更好地开始阅读JSON ...... :) 我的问题是这个JSON字符串有2个“包装器”:
根元素是“Users”,它包含一个名为“User”的元素。 这修好了它:
public class User
{
public int id { get; set; }
public bool active { get; set; }
public string name { get; set; }
}
public class Response
{
public ResponseContent users { get; set; }
}
public class ResponseContent
{
public List<User> user;
}
谢谢! :)