首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得JSON响应而不是XML?

如何获得JSON响应而不是XML?
EN

Stack Overflow用户
提问于 2012-10-01 09:34:09
回答 2查看 4.1K关注 0票数 1

我只需创建一个新的WebApi项目并保留默认控制器:

代码语言:javascript
运行
复制
public class ValuesController : ApiController
{ 
    // GET api/values/5
    public string Get(int id)
    {
        return "value";
    }

    //other services...
}

当我尝试请求它时,我无法获得有效的JSON结果。

  • 没有特定的标头=> application/xml结果
  • content-type分配给application/json => application/xml结果的标头
  • accept分配给application/json的Header给出了正确的响应content-type,但给出了格式错误的JSON:"value"

获得有效的JSON结果的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-01 09:50:41

您必须使用JsonResult作为您的返回类型:

代码语言:javascript
运行
复制
public class ValuesController : ApiController
{ 
    // GET api/values/5
    public JsonResult Get(int id)
    {
        object returnObject;

        // do here what you need to get the good object inside returnObject

        return this.Json(returnObject, JsonRequestBehavior.AllowGet);
    }

    // other services...
}
票数 1
EN

Stack Overflow用户

发布于 2012-10-02 04:33:07

  • 没有特定的头=>应用程序/xml结果
  • 将内容类型分配给application/json => application/xml结果的标头

你在使用MVC 4 RTM吗?默认格式应该是application/json,如果您正在使用MVC 4 RTM.我无法复制你的场景。

  • 为application/json分配了accept的Header给出了正确的响应内容类型,但给出了格式错误的JSON:"value“。

" value“实际上是字符串的有效JSON值。如果您正在寻找名称/值对的格式,下面是一个示例。比如说我有个叫“人”的课..。

代码语言:javascript
运行
复制
public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

..。我有一个返回person对象的动作,

代码语言:javascript
运行
复制
    public Person Get()
    {
        return new Person() { Id = 1, FirstName = "John", LastName = "Doe" };
    }

然后对上述操作的调用将返回以下内容:

代码语言:javascript
运行
复制
{"Id":1,"FirstName":"John","LastName":"Doe"}

希望这能有所帮助。

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

https://stackoverflow.com/questions/12670726

复制
相关文章

相似问题

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