猿问

将数据表转换为合适的 javascript 对象 (C#)

简短的问题:

给定基于表的数据(例如 SQL 结果),使用 C# 将其转换为特定的 json 字符串/js 对象字符串的最被接受的方法是什么?

设想:

我有一个网页,使用 d3.js 来生成一般图形报告。对于数据,我调用一个 API,它执行一个存储过程并返回结果集。我需要一种将该数据转换为合适的 json 对象的方法,该对象可以在我的 d3 报告中轻松处理。

例子:

下表由我的存储过程返回

将这些数据转换为与 javascript / d3 一起使用的最合适的对象类型是什么,人们将如何实现这一目标?


我试过的:


由于我的 API 是用 C# 编写的,因此我尝试使用该JsonConvert.SerializeObject方法,如下所示。


DataTable dt = new DataTable();

using (SqlDataAdapter sql = new SqlDataAdapter(getData))

{

    sql.Fill(dt);

}


returnStr = JsonConvert.SerializeObject(dt);

它产生一个简单的数组,每行数据一个项目,例如:


[

    {

        "Group": "Group01", "TrueFalse": 1, "SubGroup": "SubGroup01", "Owner": "ME"

    },

    {

        "Group": "Group01", "TrueFalse": 1, "SubGroup": "SubGroup02", "Owner": "ME"

    },

    {

        "Group": "Group01", "TrueFalse": 0, "SubGroup": "SubGroup02", "Owner": "You"

    },

    {

        "Group": "Group01", "TrueFalse": 1, "SubGroup": "SubGroup03, "Owner": "You"

    },

    {

        "Group": "Group02", "TrueFalse": 0, "SubGroup": "SubGroup01", "Owner": "Someone"

    },

    // etc...

]

虽然它很有可能使用它,但我不知道这是否是最好的方法,或者我们是否可以创建一个更合适的对象。如果您可以就最佳实践和可能的示例提供任何指示,那就太好了。


12345678_0001
浏览 178回答 1
1回答

陪伴而非守候

这更多是偏好问题,也许是数据模型的一致性。您所拥有的可能是首选方法,因为在了解数组中的对象结构的同时很容易进行迭代。另一种方法,如果您是新来的开发人员,则更难理解,是为表中的每一列创建一个数组,并通过数组的索引进行迭代以获取值。这将需要更多代码并且可读性较差。因此,与其为每次迭代数组的每个字段都建立索引,您只需拥有具有一致结构的对象,即使对象中的某个字段为空,这也会导致数组每列方法的另一个问题:您将有绝对确定一个字段不能为空。否则,您的索引计数将不一致。长话短说,你所拥有的在语义上是最合适的。表列相当于对象中的字段,JSON 对象相当于表中的一行。我希望这对您有意义并有所帮助。
随时随地看视频慕课网APP
我要回答