C# json数据在反序列化后出现空引用异常
我想反序列化asp.net c#代码中的json数据。我在反序列化语句中收到nullreference异常:C# json数据在反序列化后出现空引用异常,c#,json,deserialization,nullreferenceexception,C#,Json,Deserialization,Nullreferenceexception,我想反序列化asp.net c#代码中的json数据。我在反序列化语句中收到nullreference异常: public static string saveAllTreatments(string jsonval) { var output =JsonConvert.DeserializeObject<Treatments>(jsonval); Treatments tr = (Treatments)outpu
public static string saveAllTreatments(string jsonval)
{
var output =JsonConvert.DeserializeObject<Treatments>(jsonval);
Treatments tr = (Treatments)output;
foreach (var item in tr.data)
{
Console.WriteLine("date: {0}, number: {1}, name: {2}, note: {3}",item.date, item.number, item.name,item.note);
}
}
我看到jsonval有json数据(它的NOTNULL有字符串json数据),我在反序列化到输出时收到null引用异常。为什么会这样
谢谢。您可能想要更像这样的东西:
{
"treatment":{
data:{
[{"date":"09.07.2015","number":"22","name":"Jackson","note":"bla"}]
}
}
}
要将c#类与JSON匹配,需要将数据
字段的名称更改为治疗
:
public class Treatments
{
public List<Treatment> treatment { get; set; }
}
示例。可能是因为反序列化返回空对象。您尝试反序列化的JSON是什么?当询问序列化/反序列化时,最好显示您尝试反序列化的内容(查看其是否正确,是否为列表或单个对象等),请显示您尝试反序列化的JSON。也许您的根容器不是数组而是对象?我更新了我的问题,谢谢。JSON键“treatment”与成员名Treatments.data不一致。您可以将成员重命名为“treatment”或将JSON更改为使用密钥“data”以便他们同意吗?太棒了,谢谢!(您下面的回答与JsonProperty的结果一致):)
{
"treatment":{
data:{
[{"date":"09.07.2015","number":"22","name":"Jackson","note":"bla"}]
}
}
}
public class Treatments
{
public List<Treatment> treatment { get; set; }
}
public class Treatments
{
[JsonProperty("treatment")]
public List<Treatment> data { get; set; }
}