1

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

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了我正确的响应content-type,但 JSON 格式不正确:"value"

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

4

2 回答 2

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

你在使用 MVC 4 RTM 吗?如果您使用的是 MVC 4 RTM,则默认格式应为 application/json ...我无法重现您的场景。

  • 分配给 application/json 的标头为我提供了正确的响应内容类型,但 JSON 格式错误:“值”。

“值”实际上是字符串的有效 JSON 值。如果您正在寻找名称/值对的格式,这里有一个示例。假设我有一个名为“Person”的课程......

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

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

    public Person Get()
    {
        return new Person() { Id = 1, FirstName = "John", LastName = "Doe" };
    }

然后对上述操作的调用将返回:

{"Id":1,"FirstName":"John","LastName":"Doe"}

希望这可以帮助。

于 2012-10-02T04:33:07.423 回答
1

您将不得不使用JsonResult作为您的返回类型:

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...
}
于 2012-10-01T09:50:41.243 回答