2009-08-17 6 views
4

シンプルなASP.NET Webサービスがあります。結果としてjsonの文字列を返したいと思っています。デフォルトでは、私のWebサービスは私のjsonの結果をいくつかのXMLにラップしています。ASP.NET Webサービスがxmlデータを返すのを止めるにはどうすればよいですか?

例えば、

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="http://webservice.streetadvisor.com/">{.... json result in here ... }</string> 

Booo。

  • 私のWebサービスはいくつかのXMLを返すことはできませんが、生の出力として私の結果を書き込むことができますか?
  • webserviceでHTTPステータスコードを定義できますか?例えば。 200, 201, 202, 404, 500など?
  • 回答タイプを定義できますか?例えば。 application/json

乾杯!

答えて

3

通常のWebサービスではなく.ashxハンドラを作成することで、これを簡単に行うことができますが、その時点でWebサービスに関するインフラストラクチャが多く失われています。 SOAPが提供する構造化された方法です。

「未処理の」ハンドラとしてのcreating an RSS feedの例を示します。ここにはmore general tutorialがあります。それは特にトリッキーではない - それらがあなたに多くの助けがなければ、ashxの検索をして、あなたはたくさんのヒットを得るだろう。

Webサービスプロジェクトからやっていくのが簡単ではありません。私はまっすぐなASP.NET Webアプリケーションプロジェクトからやっただけです。それはうまく "ちょうど"働くかもしれません - それは試してみる価値があります。私はそれが返すようにしたいJSONを作成する(1 hereのような).NET JSONフレームワークを使用して次に

Response.Clear(); 
Response.ContentType = "text/javascript"; 

:イムは、私だけで.aspxページを使用してJSONを返すようにしたい時には場合

+0

私はこれが答えになるのではないかと心配しました:)それでは、GETまたはPOSTの引数のために、クエリ文字列またはフォームに直接アクセスする必要がありますか? –

+0

うん - それはあなたのために問題になる可能性がありますか?あなたは本当にSOAPのようなものを入力として持っていますが、出力とは根本的に異なるものを期待していますか?ここのクライアントは何ですか? –

+0

問題ない。ちょっとだけ配管(私は1時間ほど前からやっている)。私はRESTfulなものに慣れていて、ASP.NET MVCプロジェクトのタイプを愛しています。私は、私が維持しているいくつかの他のプロジェクトと逆向きに進んでいるように感じています。私は書き換えルールを使用して、私のashxファイルのメソッドにRESTFUL URLをバインドしています。入力はクエリー・ストリングまたはポスト・パラメーターを使用して単純なHTTP-GETまたはPOSTです。出力json。クライアントは、閉鎖された単一の第三者コンシューマーではなく、公共のウェブスペース内の誰でもいます。 –

2

+0

jqueryUIのオートコンプリートで作業するのはシンプルで簡単です –

0

あなたは、単にこれは私のために働いた

[WebMethod] 
[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)] 

を使用することができます。

関連する問題