我的数据集中有3个数据表。表A与B和C有一对多的关系。我想在c#中使用Linq创建如下的Json。有人可以帮帮我吗?我想提前感谢所有指导我或向我提出问题的人。
callback hell
答案 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#获得进一步的帮助。
我希望这可能有所帮助。