描述:
我正在用c# asp.net开发一个 web 解决方案,这样,我可以从前面构建一个JSON
复杂的对象,以便在后面接收到它时,它将值保存在 SQL Server 2012 数据库中。
复杂对象的JSON
组成如下:
[{
"__KEY__": "73c14f5b-cbb9-8711-217a-a1a5453b7159",
"sUserID": [80417452, 80426837, 79945118],
"FechaInicio": "2017-04-19T05:00:00.000Z",
"FechaFin": "2017-04-20T05:00:00.000Z",
"Id_Franja": 3
}]
使用以下行序列化 JSON 对象并将其转换为DataTable
我得到以下结果:
代码:
// La variable "myJson" contiene el JSON complejo.
DataTable jsonDataTable = (DataTable)JsonConvert.DeserializeObject(myJson, (typeof(DataTable)));
序列化结果:
我需要将这个复杂的 JSON 转换为 C# 中的 DataTable;在这种情况下,我需要将“sUserID”列的值DataTable
作为逗号分隔的字符串。
如何将这个复杂的 JSON 对象转换为 DataTable?
我已经尝试过这些 解决方案,但我无法调整代码来实现这个目标。
我正在寻找其他选项来将复杂的 JSON 对象“如示例中的对象”转换为 DataTable。
元素
sUserID
之所以这样显示,是因为编译器自己判断类型并检测到它是一个array
ofint64[]
,并且由于不能显示内容,所以只显示数据类型。如果该值可以作为
"sUserID": "[80417452, 80426837, 79945118]"
,那么您可以将其确定为string
。现在,在将其直接反序列化为 a 之前
DataTable
,最好将其转换为 aList<T>
,以便我们从该列表中将其作为数据源处理。类定义:
请注意,由于无法
sUserID
直接转换为,string
我们将依赖另一个名为的变量,sUserIdNuevo
它将做的是将值array
与int64[]
String.Join("", new List<int>(this.sUserID).ConvertAll(i => i.ToString()).ToArray());
鉴于您仅使用
DataTable
to 循环遍历它并将其用作存储到数据库的变量的评论,我建议您遍历该列表就足够了:本文指出了切换到
DataTable
泛型集合的 7 个强有力的理由。