2014-01-26 50 views
-1

如何在ASP.NET Web API返回给客户端之前编辑和更改返回的JSON。 例如:在ASP.Net Web API中自定义返回的JSON数据

public HttpResponseMessage GetCustomerById(int customerId) 
    { 
     Customer customer = DAL.GetCustomer(123); 

     if (customer == null) 
     { 
      return Request.CreateResponse(HttpStatusCode.NotFound, "Could not find          customer " + customerId.ToString()); 
     } 
     else 
     { 
      return Request.CreateResponse(HttpStatusCode.OK, customer); 
      **// Here I like to edit the JSON before I return it** 
     } 
    } 
+0

您可以创建自定义序列并使用它的标准一个 –

+0

究竟是你想改变什么?客户对象? – mezmi

+0

是的。假设我想以特定格式返回日期 - 特殊格式的Customer.SomeDate属性(UTC) – user3237706

回答

0

您需要的JSON反序列化到某种物体,例如使用JsonExSerializer库。然后,您可以开始修改对象,将其序列化回JSON并发送修改后的JSON字符串。使用JsExSer的示例。

Serializer ser = new Serializer(typeof(ArrayList)); 
ArrayList json = ser.Deserialize(jsonstring); 
json.Add("something"); 
string jsonready = ser.Serialize(json); 

还要注意,修改必须在返回之前完成,为:

**// Here I like to edit the JSON before I return it** 
return Request.CreateResponse(HttpStatusCode.OK, customer); 
相关问题