13

XMLの代わりにASP.NETWebAPIからデフォルトでjsonを返すことは可能ですか?

4

2 に答える 2

18

これはデフォルトで行われることです。JsonMediaTypeFormatterは最初MediaTypeFormatterに登録され、クライアントが特定の形式で応答を要求しない場合、ASP.NETWebAPIパイプラインはapplication/json形式で応答を提供します。

サポートのみが必要な場合はapplication/json、他のすべてのフォーマッターを削除し、そのままにしておきJsonMediaTypeFormatterます。

public static void Configure(HttpConfiguration config) {

    var jqueryFormatter = config.Formatters.FirstOrDefault(x => x.GetType() == typeof(JQueryMvcFormUrlEncodedFormatter));
    config.Formatters.Remove(config.Formatters.XmlFormatter);
    config.Formatters.Remove(config.Formatters.FormUrlEncodedFormatter);
    config.Formatters.Remove(jqueryFormatter);
}
于 2012-12-01T18:08:18.803 に答える
8

@tugberkのソリューションは、デフォルトのフォーマッターを変更するという目標を実際には達成していません。それは単にJSONを唯一のオプションにします。JSONをデフォルトにし、他のすべてのタイプを引き続きサポートする場合は、次のようにすることができます。

public static void Configure(HttpConfiguration config) {
    // move the JSON formatter to the front of the line
    var jsonFormatter = config.Formatters.JsonFormatter;
    config.Formatters.Remove(jsonFormatter);
    config.Formatters.Insert(0, jsonFormatter);
}

注:JSONは、WebAPI2.0以降のデフォルトのフォーマッターです。

于 2014-05-15T19:27:00.540 に答える