1

新しいMVCWebAPIでラップしたいレガシーWebサービスがあります。質問は、ASP.NET WebAPIでxmlをjsonに変換できるかどうかです。

XDocumentを使用して動的オブジェクトを作成し、それを返すことを考えていましたが、ExpandoObjectで試してみると、残念ながら、キーと値のペアを持つjsonオブジェクトが返されました。

4

5 に答える 5

6

json.NETを使用すると、簡単に実行できます。

string result = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xmldocument);

Newtonsoft.Jsonをhttp://james.newtonking.com/pages/json-net.aspxからダウンロードします

于 2012-02-28T16:23:33.393 に答える
2

あなたは出来る。これを行う1つの方法は、XMLをオブジェクトに逆シリアル化してから、それらを再びJSONにシリアル化することです。

より効率的な(コード化のアプローチは難しいですが)は、XMLを読み込んでJSONを吐き出す独自のxml-to-json「transcriber」を作成することです。

すべてのXMLをJSONとして簡単に表現できるわけではないことに注意してください。

于 2012-02-28T16:15:36.253 に答える
1

これは、XDocumentを次のように動的なJsonObjectに変換することで実行できます。

var doc = XDocument.Load(uri);
foreach (var node in doc.Root.Descendants()) {
   var obj = (dynamic) new JsonObject();
   foreach (var child in node.Descendants())
   {
      obj[child.Name.LocalName] = child.Value;
      yield return obj;
   } 
}
于 2012-02-29T09:45:57.323 に答える
0

Register関数内のWebApiConfigファイルに、最後に以下のコードを追加します(WebApiConfigファイルはApp_Startフォルダーにあります)

config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/html"));
于 2019-03-22T09:59:30.933 に答える
0
        config.Formatters.Remove(config.Formatters.XmlFormatter);
于 2020-03-27T18:41:03.197 に答える