2014-01-26 48 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); 
相關問題