2016-12-24 4 views
0

JSONを返すモバイル用のWebAPIを開発しましたが、JSONを返すのにうまくいきましたが、JSONはXMLになります。webapiがJSONを文字列のXMLで返します

以下は私のコードとスクリーンショットです。

return JsonConvert.SerializeObject(result); 

"result"は私がデータを入力する私の応答クラスです。私はNewsoftのJavaScriptSerializerとJsonConvertを試しましたが失敗しました。

Json returned in XML

は、どのように私はそれをJSONで単純な文字列で動作し得ることができますか?

+0

「Response.ContentType = "application/json"; '[MSDNリファレンス]」(https://msdn.microsoft.com/en-us/library/ms525208%28v=vs.90%29.aspx? f = 255&MSPPError = -2147217396)と[application/json](http://www.iana.org/assignments/media-types/application/json)と[RFC 7159](https://tools.ietf.org/ html/rfc7159) –

+0

ありがとうございますが、どこでそれをする必要がありますか? –

+0

サーバー上のサーバーからデータが送信される前に行う必要があります。かなり標準的なのは、フォーマットを決定するために新しいgetフラグを受け入れるコードを追加することです。 flagが設定されていない場合は、デフォルトとして選択したものとしてレンダリングされます。例えば ​​'https://example.com/api/foo?type = json' –

答えて

1

唯一のメソッドの戻り値の型をjsonに変換し、データ全体(応答データ)をJson形式に変換していないためです。応答データ全体をJsonに返すには、WebApiConfig.csクラスに次の構文を追加します。

config.Formatters.Remove(config.Formatters.XmlFormatter); 

Web Apiはすべての応答データをデフォルトでXMLに送信するので、デフォルトのXMLFormatterWebApiConfig.csクラスから削除する必要があります。

MediaTypeFormattersの詳細については、このビデオチュートリアルをご覧ください。

https://www.youtube.com/watch?v=tNzgXjqqIjI&list=PL6n9fhu94yhW7yoUOGNOfHurUE6bpOO2b&index=6

UPDATE

方法でオブジェクトをシリアル化いけません。 JsonConvert.SerializeObject()を削除してオブジェクトを返します。上記の構文をWebAppconfig.csファイルに追加するだけです。

+0

これは答えではありません。 OPはメソッドから**文字列**を返しています。 OPがこれを追加すると、APIはJSONで応答しますが、JSON自体は**の文字列になります。したがって、 '{" foo ":" bar "}'の代わりに、応答は '' {\ "foo \":\ "bar \"} "'になります。 – CodeCaster

+0

このJsonConvert.SerializeObjectを戻り値の型から削除する必要があります。 – Rajput

+0

こんにちはRajput、答えをありがとう - 私は私のコメントと同じことを適用したが、HttpwebRequestを使用してjsonフォーマットを適用した。 –

関連する問題