2016-11-15 10 views
-1

私はWeb APIプロジェクトを作成し、簡単なクエリを作成しました。その後、データをjsonに変換して返しました。.net web api reponse jsonラップされたXML

public IHttpActionResult GetAllObjects(); 

と私は私が必要とするのは、JSONのためではないライン

return Ok(jsonData); 

に戻る:関数の定義がある

<string xmls="http/.../"> {json data} </string> 

: は、問題は、データがで包まれていますhtmlタグでラップするが、それでもIHttpActionResultを使用する。

+1

あなたがあなたのサービスを照会しますどのように?二番目に、contentTypeを設定するか、受け入れるか(あなたが設定すべきものを覚えていないか)、httpクエリの属性をjson –

+0

Noと設定しましたか?どこで設定する必要がありますか?そして、私はクエリのためのデータリーダーを使用し、私はデータをシリアル化し、それをjsonに回します。 –

+0

[this](http://stackoverflow.com/questions/22681925/webapiforce-action-to-return-xml) –

答えて

0

OKを返すと、入力したデータは自動的にxml形式に解析されます。応答を返すときにokの代わりにcontentを使用するだけです。

ありがとうございました!

1

唯一の欠点は、レスポンスヘッダーにcontent-type:text/htmlが含まれていることです。なぜそれは問題でしたか?私はコンテンツタイプを検査するJ-SONフォーマッタクロム拡張を使用しているので、私は慣れてきたかなりのフォーマットを取得しません。私はtext/htmlの要求を受け入れ、アプリケーション/ J-息子応答を返す単純なカスタムフォーマッタであること固定:

public class JsonFormatter : JsonMediaTypeFormatter 
    { 
      public JsonFormatter() { 
      this.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); 
      this.SerializerSettings.Formatting = Formatting.Indented; 
            } 
     public override void SetDefaultContentHeaders(Type type, HttpContentHeaders headers, MediaTypeHeaderValue mediaType) 
{ 
      base.SetDefaultContentHeaders(type, headers, mediaType); 
      headers.ContentType = new MediaTypeHeaderValue("application/json"); 
                   } 
    } 

してから、このコードを使用します

config.Formatters.Add(new JsonFormatter()); 
関連する問題