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) 我有一个Web API控制器,从那里我将一个对象作为JSON从一个动作返回.
我是这样做的:
public ActionResult GetAllNotificationSettings()
{
var result = new List<ListItems>();
// Filling the list with data here...
// Then I return the list
return new JsonResult { Data = result };
}
Run Code Online (Sandbox Code Playgroud)
但是这样,包含其Data属性的JsonResult对象被序列化为JSON.所以我通过动作返回的最终JSON如下所示:
{
"ContentEncoding": null,
"ContentType": null,
"Data": {
"ListItems": [
{
"ListId": 2,
"Name": "John Doe"
},
{
"ListId": 3,
"Name": "Jane Doe"
},
]
},
"JsonRequestBehavior": 1,
"MaxJsonLength": null,
"RecursionLimit": null
}
Run Code Online (Sandbox Code Playgroud)
我无法序列化此JSON字符串,因为该JsonResult对象向其添加了各种其他属性.我只对其感兴趣ListItems,别的什么.但它自动添加的东西,如:ContentType,MaxJsonLength等...
现在这对我来说不起作用,因为JSON字符串中的所有其他属性......
var …Run Code Online (Sandbox Code Playgroud)