我有两个 DataTable
的列表。我正在将此列表转换为 JSON 数组,但我需要为 JSON 字符串中的每个 DataTable
添加表名称。
我怎样才能做到这一点?
这就是我转换列表的方式:
Dim json As String = JsonConvert.SerializeObject(list, New DataTableConverter())
所需的 JSON 输出:
{
"category": [
{
"id": "1",
"desc": "default",
},
{
"id": "2",
"desc": "fun",
}
],
"images": [
{
"image ID": "1",
"link": "images/logo.jpg"
"category": "1"
},
{
"image ID": "2",
"link": "images/logo2.jpg"
"category": "2"
}
]
}
最佳答案
尝试将表放入 DataSet
而不是列表中,然后序列化 DataSet
。
Dim table1 As New DataTable("category")
table1.Columns.Add("id", GetType(String))
table1.Columns.Add("desc", GetType(String))
table1.Rows.Add("1", "default")
table1.Rows.Add("2", "fun")
Dim table2 As New DataTable("images")
table2.Columns.Add("image ID", GetType(String))
table2.Columns.Add("link", GetType(String))
table2.Columns.Add("category", GetType(String))
table2.Rows.Add("1", "images/logo.jpg", "1")
table2.Rows.Add("2", "images/logo2.jpg", "2")
Dim dataSet As New DataSet()
dataSet.Tables.Add(table1)
dataSet.Tables.Add(table2)
Dim json As String = JsonConvert.SerializeObject(dataSet, Formatting.Indented)
Console.WriteLine(json)
输出:
{
"category": [
{
"id": "1",
"desc": "default"
},
{
"id": "2",
"desc": "fun"
}
],
"images": [
{
"image ID": "1",
"link": "images/logo.jpg",
"category": "1"
},
{
"image ID": "2",
"link": "images/logo2.jpg",
"category": "2"
}
]
}
关于json - JSON 数组字符串中的表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19559258/