webサービスの結果をjsonで表示したい

このQ&Aのポイント
  • asp.netで作成したwebサービスの結果ページを「json」で返したいが、なぜかxmlで出力されてしまう。
  • ResponseFormat = ResponseFormat.Jsonを指定しても出力がXMLとなる。設定が足りないのか?
  • jsonでの結果表示ができず、xmlで表示される問題について質問。asp.netのwebサービスの設定に不備があるのか?
回答を見る
  • ベストアンサー

webサービスの結果をjsonで表示したい

asp.netでwebサービスを作成する際、結果ページを「json」で返したいのですが、 なぜか、xmlで出力されてしまいます。 [WebMethod()] [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)] public List<hogehoge> GetHogeJson() { List<hogehoge> hogeList = new List<hogehoge>(); ・・・ hogeList.Add(hogeEntity); return hogeList; } と、ResponseFormat = ResponseFormat.Jsonを指定しているのですが、 出力がXMLとなってしまいます。 設定が足りないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • aspnet
  • ベストアンサー率79% (72/91)
回答No.1

最近あまりネイティブのasp.netを使用していないのでうろ覚えなんですが、 ASP.NET AJAXからWebサービスブリッジで呼び出す場合、JSONがデフォルトでは? xmlにしたい場合は、[ScriptMethod(ResponseFormat = ResponseFormat.XML)]と明記する必要があると重います。 通常のASP.NETからのWebサービス呼出しですと、手動でシリアライズをかけてやらない限り、JSON形式は不可能だったと思います。。 しかも、あくまでWebMethodなので、全体はSOAPメッセージ形式になると思いますが。。 外していたらすいません。

nawams
質問者

お礼

回答ありがとうございます。 手動でjson以下のようにjson作っても、xmlのヘッダがついて<string>で囲まれしまうんですよね。 JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); Arry hogehoge = new Arry(); hogehoge.Add("hoge"); jsonSerializer.Serialize(hogehoge); で、[ScriptMethod(ResponseFormat = ResponseFormat.Json] とかしたら、うまくいくのかなぁ~と思ったのですが、だめでした。

関連するQ&A

  • webサービスの結果を整形

    お世話になります。 現在soapでデータを取得して、結果をwebページで整形して表示するようなaspページを作成していますが、思うような結果が得られず、困っております。 お知恵をお貸し下さい。 webサービスの結果として、 レモン 500 みかん 400 が返ってきますが、テキストでしか返ってきません。 これを、表形式にして整形したいのですが、上手くいきません。 参考になるサイト等ありましたら、教えて下さい。 開発環境はVisualStudio 2008 c#での開発です。 宜しくお願いします。

  • XML Webサービス

    .NETを調べれば調べるほど分からない事だらけ・・・。 ADO.NET(?) ASP.NET(?) XML Webサービスがこれから普及されていくとの事ですが、 これは、今実現できているのでしょうか? .NETがでてきて初めて可能なものなのでしょうか? 実は小さなXML Webサービスを作れればと考えているのですが、 Visual Studio.NETを使用したサンプルなど何か例などはないでしょうか? ネットでも書籍でも雑誌でも・・・。 切実です!よろしくお願いします!

    • ベストアンサー
    • XML
  • JSON の出力先ディレクトリの指定方法

    cakePHPの初心者です。 以下のようにPHPからJSON形式で、データファイルを出力したいと考えております。 $json = new Services_JSON; $encode = $json->encode($hoge); echo $encode; ですが、出力先ディレクトリの指定の仕方が分かりません。 ご存知の方、恐れ入りますが方法を教えて頂けますでしょうか?

    • ベストアンサー
    • PHP
  • PHP初心者です。JSONが参照できません・・・

    普段Webのデザイン・コーダーを担当しておりますが、 PHPのフォームを修正することになりました。 その中でJSONから値を参照しなければならないのですが、 JSONにリスト名?があるせいか、うまく取得できません。 $test = 'Store:[ { "store_name":"ストア1", "store_id":"10" }]'; var_dump(json_decode($test, true)); 上の「Store」がなければ配列の中身を参照できるのですが・・・。 そもそもJSONのフォーマットが間違えているのでしょうか。 他のページでこのJSONを使用しているので、なるべく変更したくないのが現状です。 かなり初歩的な質問で申し訳無いのですが、ググってもこの形式(Storeがあるような)ではひっかからなかったため、質問させていただきました。 何卒、宜しくお願いします。

    • ベストアンサー
    • PHP
  • javascriptでJSONを取得する方法

    C#、asp.netでJson形式の文字列をjavascriptに渡してgooglemapで使用したいです。 json.netやらDynamicJson やらがインストールされていないと使用できないのでしょうか。 aspx.cs dynamic dataSet = 取得したlist; System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); serializer.Serialize(dataSet); javascript function json() { $.ajax({ url: ××.aspx.cs, type: "get", dataType: 'json', error: function () { alert("情報の読み込みに失敗しました"); }, success: function (data) {        alert("data"); } }); } こちらでは、情報の読み込みに失敗しましたとアラートが出てしまいます。 http://qiita.com/rbtnn/items/b2ec6c7dee792e66ac75 http://aspnet.keicode.com/basic/jquery-ajax-basics.php この2つのサイトを参考にしています。 dataSetの中身に目的のリストが取得できているのは確認済みです。 何がいけないのでしょうか。 どうやったらJSONをjavascriptで読み込めるのでしょうか。 どなたかよろしくお願いします。

  • IE以外、JSON の内容を画面に表示してしまう

    Rails4 と dojo で Ajax を用いて画面とサーバーで JSON のやり取りをする Web ページを開発しているのですが、 サーバーから送られてきたデータをブラウザが取得すると、 IE は Javascript で receive し、処理が実行されるのですが chrome や Firefox 、スマートフォンのブラウザでは JSON を直接画面に出力してしまいます。 このバグは何が原因でしょうか? また、どうすればIE 以外のブラウザでも JSON を正しく受信できるようになるでしょうか?

  • WordでWebページを作成するときに・・・

    WordでWebページを作成したときに現れる、filelist.xmlは何なのでしょうか? その中のo:Fileタグは具体的にどういう働きをするのでしょうか?(o:が特定のXMLスキーマを指定していることは分かるのですが・・・)

  • グローバルIPを持たないWebサーバとXML Webサービスでやりとり。注意点は?

    XML Webサービスのセキュリティについて、質問させてください。 先日、社内限定で利用するXML Webサービスを作成しました。 このWebサービスは.NETで作成しています(SOAP形式)。 現在、社内のWebサーバに、このWebサービスをインストールして利用しています。 インストールしたWebサーバは、グローバルIPを持っていません。 現在、セキュリティ面の考慮は特にせずに、社外秘のデータをWebサービスの通信でやりとりしています。 ここで質問なのですが、グローバルIPを持たないWebサーバと、LAN内のクライアントとのやりとりでも、セキュリティ上でなにか特別な対策をすべきでしょうか? (SSLを構築したりなど) なお、Webサーバもクライアントも、インターネットには接続できる環境です。 以上、どうぞよろしくお願い致します。

  • マクロを使ったWEBクエリでデータが正常にできない

    マクロを使ったWEBクエリでデータが正常に取得できない エクセル2013を使用しております。 下記URLを参考に、マクロでWEBクエリで116ページ分の データ取得用マクロを作成してみたのですが、データ取得が出来ません。 マクロを使用したWEBクエリをご存知の方がいらっしゃいましたら 解決方法をアドバイス頂きたいと思います。 -参考元- http://okwave.jp/qa/q8208492.html 取得したいWEBページ http://www.walkerplus.com/spot_list/ar0300/2.html http://www.walkerplus.com/spot_list/ar0300/3.html ... http://www.walkerplus.com/spot_list/ar0300/117.html 取得用シートに記載したURL 2.html 3.html ... 117.html -作成したマクロです- Sub WEBクエリ実行() Dim St As Object Dim I As Integer Set St = ActiveSheet Sheets.Add After:=Sheets(Sheets.Count) For I = 1 To 116 With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.walkerplus.com/spot_list/ar0300/" & Format(St.Cells(I, 1), "@"), Destination:=Range("C" & (I - 1) * 1000 + 1)) .FieldNames = True .FillAdjacentFormulas = False .PreserveFormatting = True .BackgroundQuery = True .SaveData = True .AdjustColumnWidth = True .WebTables = "1" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .Refresh BackgroundQuery:=False End With Next I End Sub -マクロは ここまで- 修正箇所のアドバイス もしくは、 他の方法でも、117ページ全て取得可能なマクロをアドバイス頂けると嬉しいです!

  • Javaでウインドウを表示する方法

    Javaで簡単なアプリケーションを作成してみようと思いつき調べながらやってみたところ中身だけはできましたがウインドウを開けませんでした。開けないというのは「推奨されないAPIを使用またはオーバーライドしてます。詳細については-Xlint:deprecationオプションを指定して再コンパイルしてください」と表示されてコンパイルエラーになってしまうからです。 使用したプログラムは以下のようになっています。 import java.awt.*; public class window2 extends java.applet.Applet { Frame win=new NewFrame("ボタン付きウインドウ"); public void init(){ win.resize(200,150); win.move(300,100); add(new Button("開く")); } public boolean action(Event e, Object o){ if(o.equals("開く")) win.show(); return true; } class NewFrame extends Frame { NewFrame(String title) { super(title); Label mesg=new Label("ウインドウ 3",Label.CENTER); add("Center",mesg); add("South",new Button("閉じる")); } public boolean action(Event e, Object o){ if(o.equals("閉じる")) this.hide(); return true; } } }