強制ASP.net webservice戻JSON
-
05-07-2019 - |
質問
私はASP.net webサービスを使用していたウェブアプリケーションを返しますからXMLやJSONデータは、私に応じて機能を呼び出します。これも、これまでも思い入問題です。を実現したい"輸出"のリンクページがダウンロードJSONファイルです。リンクにフォーマットされな
<a href="mywebserviceaddress/ExportFunc?itemId=2">Export This Item</a>
として想像しますが、この輸出輸入品目2.これまでになり
問題は、野暮ったすぎやしませんか具体的には請求を受け入れコンテンツタイプは、JSON、ASP.net 絶対に拒否、返送なXML、ない適切なも発表させていただきます。このコードは以下:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Item ExportItem(int itemId)
{
Context.Response.AddHeader("content-disposition", "attachment; filename=export.json"); //Makes it a download
return GetExportItem(itemId);
}
にもかかわらず、指定のResponseFormatとしてJSONについ戻XML場合を除いて依頼この方法によAJAX(Google Web Toolkitね):
RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, "mywebserviceaddress/ExportFunc");
builder.setHeader("Content-type","application/json; charset=utf-8");
builder.setHeader("Accepts","application/json");
builder.sendRequest("{\"itemId\":2}", new RequestCallback(){...});
ことになるが、AJAXなくダウンロードダイアログを表示します。必要があります。力ASP.net いったJSONを問わずどのようにデータが必要ですかというようにしてほしいマニュアルのオーバーライドでこの挙動は、デザイン総監督いたします。
迅速に回答:
まず、"というところだと思いwompの答えはおそらく、より良い道のりの長期転換WCFがdeostrollったりとした答えは、ちょっとき用に使用する。また、この仕事がしたかったのでダウンロード、動作しない場合がありしてます。る場合には、こちらのコードも使用結果を得た:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void ExportItem(int itemId)
{
Item item = GetExportItem(itemId);
JavaScriptSerializer js = new JavaScriptSerializer();
string str = js.Serialize(item);
Context.Response.Clear();
Context.Response.ContentType = "application/json";
Context.Response.AddHeader("content-disposition", "attachment; filename=export.json");
Context.Response.AddHeader("content-length", str.Length.ToString());
Context.Response.Flush();
Context.Response.Write(str);
}
にご注意ください戻り値の型 ボイド することをおWDSLされる無駄なことはない。返ものまねじに対応する手できます。
解決
ここでは二つのフォーラムのスレッドご参考:
http://forums.asp.net/t/1118828.aspx
http://forums.asp.net/p/1054378/2338982.aspx#2338982
私は明確なアイデアです。そのように集中の設定のコンテンツタイプにapplication/json.んと共に、wcfものだと思い利用できる、レスポンスオブジェクト。
コンテンツタイプを設定し、レスポンスオブジェクト。います。書通過ごjsonデータをstringとしています。ます。
他のヒント
Asp.net webサービスSOAPのwebサービス彼らは必ず返却形式をサポートしています。のAjaxライブラリのか、ScriptMethodものを導入した変わらない考え方です。
あるカップルでものをきかせています。
WebMethodsは境界線の陳腐化の導入により、WCF.あると考え 移動ウェブサービス、WCF, では、いく上での出力形式です。
だいたいときに手動でserializeの結果webservice話をJSONのサービスのwrapるソープヘッダを表します。使う必要があり、そのストリップ、石鹸。
かっこいかっこ...ご利用の場合とwebサービスASP.NET 3.5、JSONでのデフォルトを返します。もとJSONシリアライザできますので使用を中止し、JavascriptSerializer.
この記事 上げStrahlのブログにつ強い型の変換できないとサーバ側での授業やJSONオブジェクトをクライアントから
私は、最近完了したプロジェクトをこの新たなJSONものです。純3.5っており、私は非常に感銘を受けます。かもしれないが行く価値がある...