Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 反序列化类中的JSON字符串_C#_Json - Fatal编程技术网

C# 反序列化类中的JSON字符串

C# 反序列化类中的JSON字符串,c#,json,C#,Json,我在.NET4.0中使用JSON.NET。我收到一个json字符串并尝试将其放入类中。 但是发生了一个异常,我无法解决它。 这是我的json字符串: { "Records": [ { "TransID": "902473653", "Date": "6/12/2015 10:47:00 AM", "ProductID": "90", "ItemDes": "test", "Amount": "20000", "B

我在.NET4.0中使用JSON.NET。我收到一个json字符串并尝试将其放入类中。 但是发生了一个异常,我无法解决它。 这是我的json字符串:

{
  "Records": [
    {
      "TransID": "902473653",
      "Date": "6/12/2015 10:47:00 AM",
      "ProductID": "90",
      "ItemDes": "test",
      "Amount": "20000",
      "BankTransactionID": "FM60aW33EavtDcYmXbz5vy/UvUAiQF",
      "Banktype": "IPG_SAMAN"
    },
    {
      "TransID": "910920749",
      "Date": "6/11/2015 11:05:00 AM",
      "ProductID": "91",
      "ItemDes": "test",
      "Amount": "20000",
      "BankTransactionID": "mAdWPNY++QdcKYepuIvuC4+UdZnQAa",
      "Banktype": "IPG_SAMAN"
    },
    {
      "TransID": "81131964",
      "Date": "11/24/2014 9:08:00 AM",
      "ProductID": "81",
      "ItemDes": "test",
      "Amount": "90000",
      "BankTransactionID": "123456789012",
      "Banktype": "USSD_InfoTech"
    }
  ]
}
我的班级:

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;}
}
课堂记录
{
公共字符串传输;
公共日期时间日期;
公共字符串ProductID;
公共字符串项des;
公共字符串数量;
公共字符串BankTransactionID;
公共字符串银行类型;
}
课堂记录
{
公共列表数据{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;
}
记录;
record=new JavaScriptSerializer()。反序列化(结果);
foreach(record.data中的var项)
{
textBox1.Text=item.TransID;
textBox2.Text=item.Date.ToString();
textBox3.Text=item.ProductID;
textBox4.Text=项目.金额;
}
但记录看起来是空的,因为在foreach循环中发生空异常。

您的
列表
属性需要正确命名。它应该是“记录”:


您可以使用JsonProperty更改字段的名称。有关更多详细信息,请参见此答案:

为什么不使用调试器检查记录是否为空?您的Json包含名为
记录的数组,它没有任何
数据
元素。您的类与输入不匹配
public class RootObject
{
    public List<Record> Records { get; set; }
}
public class Records
{
    [JsonProperty("Records")]
    public List<Record> Data { get; set; }
}