2017-02-09 6 views
1

私はC#.NET WebAPIのプロジェクトとすべての私のAPIの形式はいますカスタムJSONのserilization

[HttpGet] 
public IHttpActionResult Get() 
{ 
    var myComplexObject = BuildResponse(); 

    return Ok(myComplexObject); 
} 

Ok()機能は、現在、レスポンスオブジェクトをシリアル化する責任がありますJSON文字列に変換します。デフォルトのフレームワークではなくカスタムJSONシリアライザを使用するようにフレームワークに指示するにはどうすればよいですか?

+1

このリクエストのみ、またはすべてのリクエストについては、 – CodeCaster

+0

これはステータス200/OKを返すので、なぜreturn Json(myComplexObject)を使用しないのですか? – hakany

+0

@CodeCaster for all –

答えて

1

あなたはすべての要求のためのカスタム・シリアライザを使用したい場合は、ここでWebApiConfig.csでHttpConfiguration

// Add custom formatter - add at the top so it fires first! 
// This leaves the old one in place so JsonValue/JsonObject/JsonArray still are handled 
config.Formatters.Insert(0, new CustomJsonNetFormatter()); 

を設定するのインスタンス

Using an alternate JSON Serializer in ASP.NET Web API

0

独自のserailizerを作成する方法についての記事ですOK()メソッドを呼び出して戻ると、新しいOkNegotiatedContentResultを作成できます。そこからJsonSerializerSettingsを配置します。

実際には、OK(Tコンテンツ)メソッドを呼び出すと、新しいOkNegotiatedContentResultオブジェクトの作成に役立ちます。応答オブジェクトをそこにラップします。だからあなたはそれを直接行うことができます。 お手伝いをしてください。

+0

しかし、実際にはコンテンツネゴシエーションをバイパスし、JSONサポートをハードコードします。 – CodeCaster

関連する問題