2016-05-27 31 views
0

我有一個WebMethod像這樣的:使用Json.NET在C#網站默認的JSON序列

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public List<Event> getEvents() 
{ 
    var db = new DbContext(); 
    var events = from x in db.Event select x; 

    return events.ToList(); 
} 

默認情況下它使用JsonSerializer從.NET我想用Json.Net作爲默認的序列有可能?

這不是一個WFC項目,它是Visual Studio中的一個網站項目。

+0

這不是WCF項目 – Cronos

+0

此答案有幫助嗎? [如何從3.5 asmx Web服務獲取JSON響應](https://stackoverflow.com/questions/19563641/how-to-get-json-response-from-a-3-5-asmx-web-service/ 19564022#19564022)。你可以用'Context.Response.Write(JsonConvert.SerializeObject(events));'替換'Context.Response.Write(js.Serialize(data));'。 – dbc

回答

0

如果你有Json.net已經那麼你只需要確保你有using聲明,你可以只返回JSON字符串:

string json = JsonConvert.SerializeObject(events.ToList()); 
return json; 

這應該這樣做。

+1

這不行。因爲默認序列化程序序列化從'JsonConvert.SerializeObject'返回的字符串。 – Cronos

+0

嘗試刪除行'[ScriptMethod(ResponseFormat = ResponseFormat.Json)]' – Rick

+0

您的返回類型應該是'string'。 – Rick

相關問題