0

作为我的 WCF 服务的一部分,我使用 JavaScriptSerializer 将 SQL 查询结果作为 Json 返回。我希望能够提供 JSON 模式作为输出,并寻找一些关于如何实现这一点的反馈。

System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row = null;

foreach (DataRow dr in dt.Rows)
{
    row = new Dictionary<string, object>();
    foreach (DataColumn col in dt.Columns)
    {
        row.Add(col.ColumnName.Trim(), dr[col]);
    }
    rows.Add(row);
}
return serializer.Serialize(rows);
4

1 回答 1

0

AFAIK 没有内置库可以做到这一点;但是,有一些示例(包括我编写的这个示例)将 JSON 解析为一个结构,然后将其转换为一系列遵循 JSON“模式”的类。该算法的主要问题是“合并”数组中的对象,确保如果你有类似的东西

[{"a":1,"b":2},{"a":3,"c":4}]

它将生成一个具有 int 成员的类abc

示例中的文件 JsonRoot.cs 包含用于将 JSON 解析为“模式”结构的大部分代码。从那里您可以将其导出为您想要的任何格式(示例本身将其导出为 C# 或 VB 类)。

于 2013-09-26T22:53:22.583 回答