質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

1回答

5383閲覧

jsonがxmlで返却される

w00r0ntea

総合スコア18

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2017/07/30 11:55

c#で実装したjson文字列がxmlに変換されてしまいます。

public String GetUpDateState(
String Update;
String Required;
) {
return "{¥"Update¥" : " + Update + ",¥"Required" : " + Required + "}";
}

といった形で返却しているのですが、どこかで別にxmlで値を返す設定をしていると考えるのが
妥当なのでしょうか?
見識をお持ちのかたいらっしゃればご教授いただきたいと思います。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tak1wa

2017/07/30 12:06

何を以て「xmlに変換されてしまいます。」と仰っているのかと、このメソッドをこのあとどのように使っているのかなどを追記出来ますか。
guest

回答1

0

既に解決済みかとは思いますが、VS2017でWebApiのレスポンスをJSONに固定しようとしたらglobal.asaxに記述するやり方ではダメだったので、ここにメモしておきます。

回答が付かなかったのは環境に関する情報が無いからだと思います。
C#でJSONを返すサービスを書くのにはWebApi,ASP.NET MVC,WCFと選択肢がたくさんあり、かつバージョンによって記述場所もコロコロ変わっています。
どのライブラリのどのバージョンを使っているのか、XMLが返って来るというのはどうやって確認した時のことなのかが分かれば答えやすいと思います。
勝手にWebApiを利用して開発されている仮定して回答します。違っていたらすみません。

WebApiはデフォルトでJSONとXMLの両方のフォーマットをサポートしています。
どちらを使うかはクライアント次第。どちらのフォーマットで送って欲しいか、Accept headerでメディアタイプ(application/xmlあるいはapplication/json)を指定してリクエストを送ります。
クライアント側がC#のような型に厳密な言語の場合は型情報が残っているXML、JavaScriptのような型にあいまいな言語ならより通信量の少ないJSONと使い分けできるようになっています(個人の感想かも知れません)。

IEで表示すればJSONになりChromeではXMLとして表示されたような記憶があります(逆かもしれません、ChromeじゃなくFireFoxかも知れません)。
jQuery等からgetJSONする場合には特に気にしなくても問題なくapplication/jsonが指定されるはずです。

どうしてもJSONだけに固定したい場合は、App_Start/WebApiConfig.csの
Web API ルートの設定が記述されている下に下記1行を追加すればJSONに固定できます。
(VS2017のWebApiテンプレート利用の場合)

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

余談ですが、WebApiを利用されている場合は自分でJSONを組み立てる必要はまず無いと思います。
プロジェクトの「参照」の下にNewtonsoft.Jsonと言うのが見つかるはずです。
オブジェクトをリターンすれば、自動的にJSONにシリアライズしてくれます。
シリアライズの方法も色々制御可能です。日付のフォーマットやタイムゾーン、Nullの扱いなどWebApiで開発する場合はここだけは早めに目を通しておいた方がいいです(自戒をこめて…)。

投稿2017/09/03 12:59

idic

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問