json数据反序列化后出现空引用异常
json data gives null reference exception after deserialization
我想在 asp.net c# 代码中反序列化 json 数据。我在反序列化语句中收到空引用异常:
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);
}
}
这是我的 class:
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 数据(它的 not null 有字符串 json 数据),我在反序列化输出时收到空引用异常。为什么会这样?
谢谢。
你可能想要更多这样的东西:
{
"treatment":{
data:{
[{"date":"09.07.2015","number":"22","name":"Jackson","note":"bla"}]
}
}
}
要将您的 c# class 与 JSON 相匹配,您需要将 data
字段的名称更改为 treatment
:
public class Treatments
{
public List<Treatment> treatment { get; set; }
}
或者,您可以使用 JsonProperty
属性指定名称:
public class Treatments
{
[JsonProperty("treatment")]
public List<Treatment> data { get; set; }
}
示例 fiddle.
我想在 asp.net c# 代码中反序列化 json 数据。我在反序列化语句中收到空引用异常:
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);
}
}
这是我的 class:
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 数据(它的 not null 有字符串 json 数据),我在反序列化输出时收到空引用异常。为什么会这样?
谢谢。
你可能想要更多这样的东西:
{
"treatment":{
data:{
[{"date":"09.07.2015","number":"22","name":"Jackson","note":"bla"}]
}
}
}
要将您的 c# class 与 JSON 相匹配,您需要将 data
字段的名称更改为 treatment
:
public class Treatments
{
public List<Treatment> treatment { get; set; }
}
或者,您可以使用 JsonProperty
属性指定名称:
public class Treatments
{
[JsonProperty("treatment")]
public List<Treatment> data { get; set; }
}
示例 fiddle.