json - JSON 数组字符串中的表名称

标签 json vb.net datatable json.net

我有两个 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/

相关文章:

vb.net - 如何刷新 DataGridView?

java - JSON 数组中的参数

java - 如何使用 Jackson 反序列化 Map<?, ?> ?

java - 从 JSON 转换为 Map 的递归函数

vb.net - 分组后图表区域不显示注释

VB.NET制作多个具有相同名称但不同参数的子程序

jquery - 使用 Jquery 解析 JSON

javascript - html 表卡住列与纯 javascript,小 CSS

c# - 将 JSON 转换为数据表

javascript - 如何捕获可编辑数据表单元格上的单击事件?