【问题标题】:Convert datatable to json format将数据表转换为json格式
【发布时间】:2014-02-27 23:18:17
【问题描述】:

我必须在 vb.net 将数据表转换为 JSON 格式。我已经为此编写了代码,但是,我想要另一种格式。 为此,我添加了 dll NewtonSoft.json 并从数据库中填充数据表, 我写的代码... ''''我的 dt 中充满了数据。我已经在 Web 服务中编写了代码

Dim jsonString As String = JsonConvert.SerializeObject(dt)

我得到像 -

这样的输出
{"people":[{"ref":"108414","first_name":"George","last_name":"Buss","display_name":"George Buss","title":"Director of Experience & Education","organization_name":"Minnetrista","bio":"","address":"","city":null,"state":"IN","zipcode":"","country":"United States","phone_work":"","email":"","website":"","tags":"[Speaker,Attendees]","presenter_at":"[2307,8976]","organization_ref":"36441"}] }

但是 "tags""[Speaker,Attendees]" 代替我需要 "tags":["Speaker","Attendees"] 和presenter_at 也一样

从我的代码中,我直接获取了数据表并将其转换为 json。但是为此我认为修改了 json 数据,因为这些数据不是静态的,它来自数据库。我会因人而异。有谁知道解决方案,请帮我解决这个问题。 提前致谢。

【问题讨论】:

  • 数据库中“标签”的值是多少:“[Speaker,Attendees]”
  • 与标签相同的演讲者和与会者以及列名,我在 SQL 服务器查询中加入了 COALESCE。

标签: json vb.net web-services


【解决方案1】:
 public string DataTableToJSONWithJavaScriptSerializer(DataTable table)
        {
            JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
            List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>();
            Dictionary<string, object> childRow;
            foreach (DataRow row in table.Rows)
            {
                childRow = new Dictionary<string, object>();
                foreach (DataColumn col in table.Columns)
                {
                    childRow.Add(col.ColumnName, row[col]);
                }
                parentRow.Add(childRow);
            }
            return jsSerializer.Serialize(parentRow);
        }

此方法返回json字符串。 希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2016-08-05
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 2014-01-23
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多