相关疑难解决方法(0)

在C#中将数据表转换为JSON

  1. 我想从数据库中获取记录DataTable.
  2. 然后将其DataTable转换为JSON对象.
  3. 将JSON对象返回给我的JavaScript函数.

我通过调用来使用代码:

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)

c# datatable json

82
推荐指数
7
解决办法
31万
查看次数

从web api返回没有其属性的JsonResult

我有一个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)

c# asp.net-mvc json.net asp.net-mvc-4 asp.net-web-api

19
推荐指数
3
解决办法
10万
查看次数