プロが教える店舗&オフィスのセキュリティ対策術

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となってしまいます。
設定が足りないのでしょうか?

A 回答 (1件)

最近あまりネイティブのasp.netを使用していないのでうろ覚えなんですが、



ASP.NET AJAXからWebサービスブリッジで呼び出す場合、JSONがデフォルトでは?
xmlにしたい場合は、[ScriptMethod(ResponseFormat = ResponseFormat.XML)]と明記する必要があると重います。

通常のASP.NETからのWebサービス呼出しですと、手動でシリアライズをかけてやらない限り、JSON形式は不可能だったと思います。。
しかも、あくまでWebMethodなので、全体はSOAPメッセージ形式になると思いますが。。

外していたらすいません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
手動でjson以下のようにjson作っても、xmlのヘッダがついて<string>で囲まれしまうんですよね。
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();

Arry hogehoge = new Arry();
hogehoge.Add("hoge");

jsonSerializer.Serialize(hogehoge);

で、[ScriptMethod(ResponseFormat = ResponseFormat.Json]
とかしたら、うまくいくのかなぁ~と思ったのですが、だめでした。

お礼日時:2011/01/15 01:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!