2016-05-27 4 views
0

のデフォルトのJSONシリアライザとして、私はこのようなWebMethodを持っている:使用Json.NET C#のウェブサイト

[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(); 
} 

デフォルトでは、.NETからJsonSerializerを使用し、私はデフォルトのシリアライザとして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(js.Serialize(data));を 'Context.Response.Write(JsonConvert.SerializeObject(events)); 'に置き換えます。 – 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

関連する問題