我正在尝试使用一个类反序列化json字符串,但出现此错误,请帮忙。
我收到此错误
“无法将当前JSON数组(例如[1,2,3])反序列化为type 'JsonTest.EmailModels',因为该类型需要一个JSON对象(例如 {“ name”:“ value”})正确反序列化。要解决此错误,请 将JSON更改为JSON对象(例如{“ name”:“ value”})或更改 将反序列化类型转换为数组或实现集合的类型 接口(例如ICollection,IList),例如List 从JSON数组反序列化。也可以添加JsonArrayAttribute 类型,以强制其从JSON数组反序列化。”
static void Main(string[] args)
{
string json = @"[
'insurance':{
'individual':{
'registrationID':'',
'amount':'',
'Fullname':'',
'Email':''
},
'multi':{
'borRegistrationID':'111111',
'amount':'132',
'paidfor':{
'2391734':'44',
'4773998':'44'
},
'emailList':{
'2391734':'jfowler@thepelicangroup.ca',
'4773998':'edaho.properties@gmail.com'
}
}
}
]";
EmailModels emailModel = JsonConvert.DeserializeObject<EmailModels>(json);
foreach (var item in emailModel.insurance.multi.paidFor)
{
Console.WriteLine(item.Key);
Console.WriteLine(item.Value);
}
}
}
public class EmailModels
{
public Insurance insurance { get; set; }
}
public class Insurance
{
public InsIndividual individual { get; set; }
public InsMulti multi { get; set; }
}
public class InsIndividual
{
public string registrationID { get; set; }
public string amount { get; set; }
public string FullName { get; set; }
public string Email { get; set; }
}
public class InsMulti
{
public string borRegistrationID { get; set; }
public string amount { get; set; }
public Dictionary<string, string> paidFor { get; set; }
public Dictionary<string, string> emailList { get; set; }
}
它应该显示(2391734,44 4773998,44)
答案 0 :(得分:0)
一开始看起来就不对,保险不包含在物体中
[ 'insurance':{
应该是
[ {'insurance':{...} } ]
答案 1 :(得分:0)
作为JSON的基本语法,您必须使用{}
而不是[]
,因为EmailModels
不是数组而是对象。