将JSON字符串反序列化为Class

时间:2015-07-06 08:30:26

标签: c# json

我在.NET 4.0中使用JSON.NET。我收到一个json字符串,并试着把它放在课堂上。 但是一个异常发生,我无法解决它。 这是我的json字符串:

class Record
{
    public string TransID;
    public DateTime Date;
    public string ProductID;
    public string ItemDes;
    public string Amount;
    public string BankTransactionID;
    public string Banktype;
}
class Records
{
    public List<Record> data {get;set;}
}

我的班级:

Records record;
record = new JavaScriptSerializer().Deserialize<Records>(result);
foreach (var item in record.data)
{
    textBox1.Text = item.TransID;
    textBox2.Text = item.Date.ToString();
    textBox3.Text = item.ProductID;
    textBox4.Text = item.Amount;
}

我的反序列化代码:

{{1}}

但看起来记录为null,因为在foreach循环中发生了null异常。

2 个答案:

答案 0 :(得分:3)

您的List<Record>属性需要正确命名。它应该是&#34;记录&#34;:

public class RootObject
{
    public List<Record> Records { get; set; }
}

这意味着您需要更改班级名称。在我的示例中,它被称为RootObject

或者,您可以使用JsonProperty属性进行注释:

public class Records
{
    [JsonProperty("Records")]
    public List<Record> Data { get; set; }
}

答案 1 :(得分:0)

您可以使用JsonProperty更改字段的名称。有关详细信息,请参阅此答案:https://stackoverflow.com/a/15916121/686001