ASMX Web サービスからの純粋な JSON 応答の生成
ASMX Web サービスは、デフォルトで XML データを返します。 ただし、多くのアプリケーションでは JSON 出力が必要です。 ScriptMethod(ResponseFormat = ResponseFormat.Json)
を使用すると解決策のように見えるかもしれませんが、実際には JSON を XML コンテナーにラップします。
純粋な JSON 応答を実現するには、ResponseFormat
プロパティの使用を避け、代わりに JSON 文字列を HttpResponse
オブジェクトに直接書き込みます。 このアプローチでは、XML ラッパーが不要になり、クリーンな JSON データが提供されます。 void
戻り値の型を使用し、JSON 文字列を直接記述するように WebMethod を変更します。
<code class="language-csharp">[System.Web.Script.Services.ScriptService] public class WebServiceClass : System.Web.Services.WebService { [WebMethod] public void WebMethodName() { HttpContext.Current.Response.ContentType = "application/json"; //Crucial for correct content type HttpContext.Current.Response.Write("{ \"property\": \"value\" }"); } }</code>
HttpContext.Current.Response.ContentType = "application/json";
が追加されていることに注意してください。この行は重要です。正しいコンテンツ タイプ ヘッダーを設定し、クライアントが応答を JSON として正しく解釈できるようにします。 この方法では、外部ライブラリやツールを必要とせずに、ASMX から純粋な JSON 応答を作成できます。
以上がASMX Web サービスから純粋な JSON 応答を出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。