【发布时间】:2017-04-29 16:18:12
【问题描述】:
我花了很多时间研究如何反序列化这个 json 文件:
{
"clients":[
{
"id":"a0ece5db-cd14-4f21-812f-966633e7be86",
"name":"Britney",
"email":"britneyblankenship@quotezart.com",
"role":"admin"
},
{
"id":"e8fd159b-57c4-4d36-9bd7-a59ca13057bb",
"name":"Manning",
"email":"manningblankenship@quotezart.com",
"role":"admin"
},
{
"id":"a3b8d425-2b60-4ad7-becc-bedf2ef860bd",
"name":"Barnett",
"email":"barnettblankenship@quotezart.com",
"role":"user"
[ ... ]
这是我的控制器代码:
using (var sr = new StreamReader(response.GetResponseStream()))
{
receivedData = sr.ReadToEnd();
}
var userList = JsonConvert.DeserializeObject<List<User>>(receivedData);
foreach (User us in userList)
{
//this method just print the user Id
MsgBox(u.Id);
}
所以,我完全被卡住了,因为 Json
JsonConvert.DeserializeObject>(receivedData);启动 以下异常:
Newtonsoft.Json.JsonSerializationException: '无法反序列化 当前 JSON 对象(例如 {"name":"value"})转换为类型 'System.Collections.Generic.List`1[InsuranceWebAPI.Models.User]' 因为该类型需要一个 JSON 数组(例如 [1,2,3])来反序列化 正确。
我尝试将 json 数据设置为数组和列表,但不起作用。 我知道这可能是一个非常初学者的问题,但我不习惯使用 Json 和 Json.net
任何机构都可以帮助我将数据放入数组或列表中。
提前感谢大家,如果我不能正确理解有关 Json.net 的其他问题,请见谅
【问题讨论】: