Returning anonymous types with Web API
This doesn't work in the Beta release, but it does in the latest bits (built from http://aspnetwebstack.codeplex.com), so it will likely be the way for RC. You can do
public HttpResponseMessage Get(){ return this.Request.CreateResponse( HttpStatusCode.OK, new { Message = "Hello", Value = 123 });}
This answer may come bit late but as of today WebApi 2
is already out and now it is easier to do what you want, you would just have to do:
public object Message(){ return new { Message = "hello" };}
and along the pipeline, it will be serialized to xml
or json
according to client's preferences (the Accept
header). Hope this helps anyone stumbling upon this question
In web API 2 you can use the new IHttpActionResult which is a replacement for HttpResponseMessage and then return a simple Json object: (Similiar to MVC)
public IHttpActionResult GetJson() { return Json(new { Message = "Hello"}); }