簡體   English   中英

json數據反序列化后給出空引用異常

[英]json data gives null reference exception after deserialization

我想在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);
            }
}

這是我的課:

public class Treatment
    {
        public DateTime date{ get; set; }
        public int number{ get; set; }
        public string name{ get; set; }
        public string note { get; set; }
    }
    public class Treatments {
        public List<Treatment> data { get; set; }

    }

這是我的json:

{"treatment":[{"date":"09.07.2015","number":"22","name":"Jackson","note":"bla"}]}

我看到jsonval具有json數據(其非null具有字符串json數據),在反序列化輸出時收到null引用異常。 為什么會這樣呢?

謝謝。

要將c#類與JSON匹配,您需要將data字段的名稱更改為treatment

public class Treatments
{
    public List<Treatment> treatment { get; set; }
}

或者,您可以使用JsonProperty屬性指定名稱:

public class Treatments
{
    [JsonProperty("treatment")]
    public List<Treatment> data { get; set; }
}

小提琴的例子。

您可能想要這樣的東西:

{
"treatment":{
            data:{
           [{"date":"09.07.2015","number":"22","name":"Jackson","note":"bla"}]
                 }
            }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM