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

问题描述 投票:1回答:4

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

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

asp.net wcf-web-api asp.net-mvc-4 asp.net-web-api
4个回答
6
投票

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

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

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


2
投票

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

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

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


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;
   } 
}

0
投票

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

config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/html"));
© www.soinside.com 2019 - 2024. All rights reserved.