如何将Linq以SQL数据序列化为C中的JSON#

问题描述:

我正在尝试生成JSON。数据在那里,但我的理解是,我需要序列化它才能正常工作。我是C#的初学者,所以牛顿软件网站上的文档对我来说有点陌生。这是我的C#代码。如何将Linq以SQL数据序列化为C中的JSON#

public partial class Pages_ChartTest : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    [WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public static IEnumerable<procReportSalesCountsResult> jsonData() 
    { 
     using (OpsDBDataContext dc = new OpsDBDataContext()) 
     {  
      return dc.ReportSalesCounts().ToList();   
     } 
    } 
} 

什么是序列化的最后一步。我在ASP中使用Linq To SQL来提取这些数据。谢谢你们。

+0

如果你犯了一个'GET'请求,现在情况如何? – 2014-09-19 20:04:24

+0

如果我在我的JS文件中获取请求,我得到一个500错误。如果我从同一文件发出POST请求并输出到控制台,我会得到{“d”:[{“__ type”:“procReportSalesCountsResult”,“MonthID”:null,“SoldCount”:74,“MonthName”:“Jan “},{” __类型 “:” procReportSalesCountsResult “ ”MonthID“:NULL, ”SoldCount“:74, ”MONTHNAME“: ”二月“},{ ”__类型“: ”procReportSalesCountsResult“, ”MonthID“:NULL,” SoldCount “:114,”MonthName“:”Mar“} – aaron 2014-09-19 20:08:04

+0

,除了一些奇怪的编码(在''月份'月'''74')你贴在那里(我希望不是在原来的) ']}'在最后(我希望它是原创的),看起来像JSON。尝试粘贴到http://jsonlint.org/ – 2014-09-19 20:38:04

直到4.5,.NET本身不支持JSON。从VS包管理器直接下载Newtonsoft的nuget包JSON.net。

http://james.newtonking.com/json

public static string jsonData() { 
    var buffer = null; 
    using (OpsDBDataContext dc = new OpsDBDataContext()) { 
     buffer = dc.ReportSalesCounts().ToList(); 
    } 
    return JsonConvert.SerializeObject(buffer); 
} 
+0

我做到了。我带来了newtonsoft命名空间。谢谢您的回复。我只是不知道如何在我的代码中实现它 – aaron 2014-09-19 20:14:26

+0

'JsonConvert.SerializeObject(object)'返回字符串 – 2014-09-19 20:24:35

+0

谢谢Mark。所以这样?对不起,我只是在学习。公共静态IEnumerable jsonData() 使用(OpsDBDataContext dc = new OpsDBDataContext()) { return dc.ReportSalesCounts()。ToList(); } JsonConvert.SerializeObject(dc.ReportSalesCounts()。ToList()); } – aaron 2014-09-19 20:42:41