Web API可以将XML转换为Json吗?

asp.net wcf-web-api asp.net-mvc-4 asp.net-web-api

5043 观看

4回复

1575 作者的声誉

我有一个遗留的Web服务,我想用新的MVC Web API包装,问题是我可以使用ASP.NET Web API将我的xml转换为json吗?

我的想法是使用XDocument来创建一个动态对象并返回它,但是当我尝试使用ExpandoObject时,遗憾的是它返回了一个带有键/值对的json对象。

作者: nieve 的来源 发布者: 2012 年 2 月 28 日

回应 (4)


2

49935 作者的声誉

你可以。一种方法是将XML反序列化为对象,然后再将它们序列化为JSON。

更有效(虽然更难编写代码的方法)是编写自己的xml-to-json“transcriber”,它读取XML并吐出JSON。

请注意,并非所有XML都可以像JSON一样轻松表示。

作者: marcind 发布者: 28.02.2012 04:15

6

5475 作者的声誉

使用json.NET,您可以轻松完成:

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

http://james.newtonking.com/pages/json-net.aspx下载Newtonsoft.Json

作者: udidu 发布者: 28.02.2012 04:23

1

1575 作者的声誉

决定

事实证明,这可以通过将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;
   } 
}
作者: nieve 发布者: 29.02.2012 09:45

0

56 作者的声誉

在Register函数内的WebApiConfig文件中,最后添加以下代码(WebApiConfig文件位于App_Start文件夹中)

config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/html"));
作者: Sivashankar 发布者: 22.03.2019 09:59
32x32