DataTable. DataTable转换为JSON对象. 我通过调用来使用此代码:
string result = JsonConvert.SerializeObject(DatatableToDictionary(queryResult, "Title"), Newtonsoft.Json.Formatting.Indented);
Run Code Online (Sandbox Code Playgroud)
要将DataTable转换为JSON,它可以正常工作并返回以下内容:
{
"1": {
"viewCount": 703,
"clickCount": 98
},
"2": {
"viewCount": 509,
"clickCount": 85
},
"3": {
"viewCount": 578,
"clickCount": 86
},
"4": {
"viewCount": 737,
"clickCount": 108
},
"5": {
"viewCount": 769,
"clickCount": 130
}
}
Run Code Online (Sandbox Code Playgroud)
但我希望它返回以下内容:
{"records":[
{
"Title": 1,
"viewCount": 703,
"clickCount": 98
},
{
"Title": 2,
"viewCount": 509,
"clickCount": 85
},
{
"Title": 3,
"viewCount": 578,
"clickCount": 86
}, …Run Code Online (Sandbox Code Playgroud) 如何使用json.net将datatable转换为json?任何建议......我已经下载了必要的二进制文件...我应该使用哪个类来将我的数据表转换为json?迄今为止使用此方法通过传递我的数据表来获取json字符串...
public string GetJSONString(DataTable table)
{
StringBuilder headStrBuilder = new StringBuilder(table.Columns.Count * 5); //pre-allocate some space, default is 16 bytes
for (int i = 0; i < table.Columns.Count; i++)
{
headStrBuilder.AppendFormat("\"{0}\" : \"{0}{1}¾\",", table.Columns[i].Caption, i);
}
headStrBuilder.Remove(headStrBuilder.Length - 1, 1); // trim away last ,
StringBuilder sb = new StringBuilder(table.Rows.Count * 5); //pre-allocate some space
sb.Append("{\"");
sb.Append(table.TableName);
sb.Append("\" : [");
for (int i = 0; i < table.Rows.Count; i++)
{
string tempStr = headStrBuilder.ToString();
sb.Append("{");
for (int j = 0; …Run Code Online (Sandbox Code Playgroud) 我正在尝试执行一个Web服务,该服务使用以下代码返回DataTable:
$.ajax({
type: "POST",
url: url,
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
//do things
}
});
Run Code Online (Sandbox Code Playgroud)
如果webservice返回一个类,那么它就可以工作,因此它与输入参数等无关.它只在web方法返回一个数据表时失败(数据表只有2列和2行用于我正在进行的测试).
WebService类使用[ScriptService]属性进行修饰,因此我认为ASP.NET会自动将返回值序列化为JSON.它似乎不适用于数据表.
我发现的唯一解决方案是返回一个字符串(一个手动JSON序列化对象),但这样做对我来说似乎不对.
我正在使用Visual Studio 2008和.Net 3.5
我正在尝试支持一年前制作的遗留应用程序,并且需要使用jQuery AJAX调用来从服务器获取数据.我有一个JsonHelper类,用于序列化DataTables和DataSets.这通常在.NET 4.0中运行良好,但.NET 2.0没有System.Web.Script.Serialization库,因此没有JavaScriptSerializer类.
我试图找到另一个JSON序列化程序,但到目前为止我无法得到任何工作.
我尝试使用JSON.NET 2.0 http://json.codeplex.com/releases/view/13099,但它说它需要一个更高的框架.所以我尝试了JSON.NET 1.3.1 http://json.codeplex.com/releases/view/6987 我只能弄清楚如何将JSON写入.txt文件,我希望能够通过字符串返回客户端.
我也尝试过JsonFx.NET http://jsonfx.net/download/序列化库(适用于2.0).仍然无法得到任何工作.
我不知道我是否遗漏了这些库中的一些关键元素,或者是否有一个简单的解决方案.
提前致谢
我认为以下将是一个非常常见的任务,并假设有一个简单的解决方案,但我找不到一个.
如果我有以下结构的数据表.
ID Name Active
ID1 John TRUE
ID2 Bill FALSE
Run Code Online (Sandbox Code Playgroud)
我想将其序列化为JSON对象,其中ID列是JSON对象中的节点,如:
[
{
"ID1": {
"Name": "John",
"Active": "True"
},
"ID2": {
"Name": "Bill",
"Active": "False"
}
}
]
Run Code Online (Sandbox Code Playgroud)
我查看了JSON.NET但无法让它工作.编辑:我正在使用C#
我想将DataTable作为Json格式在图表上显示.
public JsonResult GetDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("Jan");
dt.Columns.Add("Feb");
dt.Columns.Add("Mar");
dt.Columns.Add("Apr");
for (int i = 0; i < 10; i++)
{
dt.Rows.Add(i * 5, i * 10, i * 15, i * 11);
}
// JsonDataTable = dt to Json
return new JsonResult
{
Data = new
{
success = true,
chartData = JsonDataTable
},
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
Run Code Online (Sandbox Code Playgroud)
如何将DataTable转换为Json?
谢谢.