C# json数据在反序列化后出现空引用异常

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

我想反序列化asp.net c#代码中的json数据。我在反序列化语句中收到nullreference异常:

   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; }
}