作为我的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);
答案 0 :(得分:0)
AFAIK没有内置的库可以做到这一点;但是,有一些示例(包括this one which I wrote)将JSON解析为一个结构,然后根据JSON“模式”将其转换为一系列类。该算法的主要问题是在数组中“合并”对象,确保如果你有像
这样的东西[{"a":1,"b":2},{"a":3,"c":4}]
它会生成一个包含int成员a
,b
和c
的类。
示例中的文件JsonRoot.cs具有用于将JSON解析为“模式”结构的大部分代码。从那里,您可以将其导出为您想要的任何格式(示例本身将其导出为C#或VB类)。