首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >返回XML而不是ASP.NET的JSON

返回XML而不是ASP.NET的JSON
EN

Stack Overflow用户
提问于 2013-08-16 14:15:56
回答 2查看 51K关注 0票数 28

我读到默认情况下,Web API将返回JSON数据,但由于某些原因,在创建API时,它返回XML而不是JSON。

代码语言:javascript
复制
public class CurrencyController : ApiController
{
    private CompanyDatabaseContext db = new CompanyDatabaseContext();

    // GET api/Currency
    public IEnumerable<Currency> GetCurrencies()
    {
        return db.Currencies.AsEnumerable();
    }
}

我没有修改任何不寻常的东西,所以我被难住了

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-16 15:40:23

如果您按如下所示修改您的WebApiConfig,那么默认情况下您将获得JSON。

代码语言:javascript
复制
public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
        config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
    }
}
票数 62
EN

Stack Overflow用户

发布于 2013-08-17 14:08:19

Web Api查找即将到来的请求的头部,以选择返回的数据类型。例如,如果您设置了Accept:application/json,它会自动将返回类型设置为JSON。

除此之外,设置content-type为Web-API提供了有关即将到来的请求数据类型的线索。因此,如果您想要将JSON数据发布到Web API,则应该在报头中使用Content-Type:application/json

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18266952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档