在C#中生成JSON模式

时间:2013-09-26 20:33:20

标签: c# json wcf json.net

作为我的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);

1 个答案:

答案 0 :(得分:0)

AFAIK没有内置的库可以做到这一点;但是,有一些示例(包括this one which I wrote)将JSON解析为一个结构,然后根据JSON“模式”将其转换为一系列类。该算法的主要问题是在数组中“合并”对象,确保如果你有像

这样的东西
[{"a":1,"b":2},{"a":3,"c":4}]

它会生成一个包含int成员abc的类。

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