[Web API] 回傳格式設定
讓Client端無論如何都回應JSON格式
這是因為WebAPI會判斷瀏覽器送出的Accept標頭來自動決定回應的格式,解決方式:在global.asax將xml支援格式設定移除
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
解決回傳Json的欄位有中括號問題
在某一個類別的回傳會出現格式有中括號問題,如下每個欄位都被括號包起來,並多出了底線符號
檢查了該類別後,發現原來該類別有加上Attribute [Serializable],本想把它直擁拿掉,但想說應該有其他解決方法,找了一下文章後,果然有更好的解法。一樣在global.asax加上設定,如下忽略序列化屬性
var contractResolver = (DefaultContractResolver)GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ContractResolver; contractResolver.IgnoreSerializableAttribute = true;
參考來源
http://blog.miniasp.com/post/2012/10/13/ASPNET-Web-API-Force-return-JSON-format-instead-of-XML-for-Google-Chrome-Firefox-Safari.aspx
http://stackoverflow.com/questions/12334382/net-webapi-serialization-k-backingfield-nastiness