Asp.net Web API可以将XML转换为Json吗?
我有一个遗留的web服务,我想用一个新的MVC web API来包装它,问题是我能用ASP.NET web API将xml转换成json吗Asp.net Web API可以将XML转换为Json吗?,asp.net,wcf-web-api,asp.net-mvc-4,asp.net-web-api,Asp.net,Wcf Web Api,Asp.net Mvc 4,Asp.net Web Api,我有一个遗留的web服务,我想用一个新的MVC web API来包装它,问题是我能用ASP.NET web API将xml转换成json吗 我的一个想法是使用XDocument创建一个动态对象并返回该对象,但当我尝试使用ExpandooObject时,不幸的是,它返回了一个带有键/值对的json对象。可以。一种方法是将XML反序列化为对象,然后再次序列化为JSON 一种更有效但更难编码的方法是将自己的xml编写成json转录器,读入xml并输出json 请注意,并非所有XML都可以轻松地表示为J
我的一个想法是使用XDocument创建一个动态对象并返回该对象,但当我尝试使用ExpandooObject时,不幸的是,它返回了一个带有键/值对的json对象。可以。一种方法是将XML反序列化为对象,然后再次序列化为JSON 一种更有效但更难编码的方法是将自己的xml编写成json转录器,读入xml并输出json
请注意,并非所有XML都可以轻松地表示为JSON。您可以。一种方法是将XML反序列化为对象,然后再次序列化为JSON 一种更有效但更难编码的方法是将自己的xml编写成json转录器,读入xml并输出json
请注意,并非所有XML都可以轻松地表示为JSON。使用JSON.NET,您可以轻松地做到:
string result = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xmldocument);
使用Json.NET在下载Newtonsoft.Json您可以轻松完成:
string result = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xmldocument);
在下载Newtonsoft.Json可以通过将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;
}
}
事实证明,这可以通过将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;
}
}
在WebApiConfig file In Register函数中添加以下代码,最后WebApiConfig文件位于App_Start文件夹中
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/html"));
在WebApiConfig file In Register函数中添加以下代码,最后WebApiConfig文件位于App_Start文件夹中
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/html"));
是的,这是我最初的想法,但我希望这可以通过web api实现,这样根据使用的xml或json数据类型,ApiController将返回正确的格式…web api确实执行内容协商,这意味着它将返回最适合客户机想要得到的表示。但是,它没有一个内置的工具来直接将XML文档转换为JSON表示。是的,这是我最初的想法,但我希望这可以通过web api实现,因此,根据使用的xml或json数据类型,ApiController将返回正确的格式…Web API确实执行内容协商,这意味着它将返回最适合客户机想要得到的表示。但是,它没有内置功能,无法将XML文档直接转换为JSON表示。请不要只发布代码作为答案,还要解释代码的作用以及如何解决问题。带有解释的答案通常质量更高,并且更有可能吸引更多的选票。请不要只发布代码作为答案,还要解释代码的作用以及它如何解决问题。带有解释的答案通常质量更高,更容易吸引选票。