从datatable c#创建复杂的json

时间:2015-06-04 10:58:21

标签: javascript c# json linq datatables

我的数据集中有3个数据表。表A与B和C有一对多的关系。我想在c#中使用Linq创建如下的Json。有人可以帮帮我吗?我想提前感谢所有指导我或向我提出问题的人。

callback hell

2 个答案:

答案 0 :(得分:1)

首先,你必须创建这些类,

public class Result
{
    public List<TableA> A { get; set; }
}
public class TableA
{
    public TableA()
    {
          B = new List<TableB>();
          C = new List<TableC>();
    }
    public string id { get; set; }
    public string type { get; set; }
    public string name { get; set; }
    public float ppu { get; set; }
    public virtual List<TableB> B { get; set; }
    public virtual List<TableC> C { get; set; }
}

public class TableB
{
    public string id { get; set; }
    public string type { get; set; }
}
public class TableC
{
    public string id { get; set; }
    public string type { get; set; }
}

然后,将值存储在Result类的结果对象中,并使用NewtonSoft序列化程序对其进行序列化,如下所述:

Result result;
JsonConvert.SerializeObject(result); 

答案 1 :(得分:0)

您可以通过不创建任何类并使用“动态”类型来简化它。 C#4允许您动态创建类型,并像使用任何声明的类型或类一样使用它们。

有关动态类型的更多信息:http://www.codeproject.com/Articles/69407/The-Dynamic-Keyword-in-C

首先需要创建动态类型并填充其所需的Json属性。请参阅这篇文章,了解Json和动态结构如何关联:http://www.codeproject.com/Tips/834005/storing-GeoJson-coordinates

有许多方法可以根据您的数据和列动态调整DataSet上的迭代。您可以从Convert datatable to JSON in C#获得进一步的帮助。

我希望这可能有所帮助。