使用NewtonSoft.JSon在c#中序列化数据集

时间:2016-08-03 00:33:40

标签: c# json

我的情况是这样的。我有一个数据集,里面有2个表,第一个表有行,但第二个表有空,这意味着它没有记录。当我使用newtonsoft.json对其进行序列化时,它仅对第一个表数据进行序列化,但我需要第二个表也使用空值,这意味着我可以将其反序列化为另一个数据集,以便它可以有2个表,其中1个表包含数据,另一个表表没有数据。这是在C#中完成的 代码如下

DataTable dt = new DataTable();
dt.TableName = "TblService";

dt.Columns.Add("Service_Id");                    
dt.Columns.Add("Service_Name");

dt.Rows.Add("1", "AAA");
dt.Rows.Add("2", "BBB");

DataSet ds = new DataSet();
ds.Tables.Add(dt);

DataTable  dt1 = new DataTable();
dt1.TableName = "Service_Method";

dt1.Columns.Add("Id");
dt1.Columns.Add("Service_Id");
dt1.Columns.Add("Method_Name");

//dt1.Rows.Add("", "", ""); If I use this I get 2 tables serialized. But I want without using this step.

ds.Tables.Add(dt1);

var json = JsonConvert.SerializeObject(ds, Newtonsoft.Json.Formatting.Indented);

这是json值:

{
    "TblService": [{
        "Service_Id": "1",
        "Service_Name": "AAA"
    }, {
        "Service_Id": "2",
        "Service_Name": "BBB"
    }],
    "Service_Method": []
}

并且没有关于表2的任何数据。

1 个答案:

答案 0 :(得分:0)

使用newtonsoft.json及其序列化和反序列化数据集,即使是根据需要使用空数据表.Thnx for ur support