[英]Get deserializable DateTime from ASP.NET Web API
我目前正在C#和ASP.NET中的客戶端-服務器系統上工作,除其他事項外,該系統來回傳遞DateTime對象作為DataCOntract的pasrt。
使用ASP.NET Web API項目編寫的API終結點從Windows客戶端應用程序接受並返回JSON。 由於某些原因,客戶端應用程序中的DataContractJSONSerializer不接受從服務器提取的JSON封裝的DateTime對象。
服務器輸出:
[
{"title":"My Object", "time":"2017-02-20T12:37:35.53" },
{"title":"My Second Object", "time":"2017-02-20T12:37:35.53" }
]
但是DataContractJsonSerializer期望DateTime的格式如下:
\/Date(12345789)\/
如何更改一個或另一個?
您是否為序列化程序指定了DateTime格式設置?
使用DataContractJsonSerializer從自定義DateTime序列化/反序列化
var serializer = new DataContractJsonSerializer(
typeof(Client),
new DataContractJsonSerializerSettings {
DateTimeFormat = new DateTimeFormat("yyyy-mm-dd hh:MM:ss"),
});
我終於找到了一種更改Web API輸出以返回自定義格式的方法,並在客戶端應用程序中也對此進行了指定。 事實證明,可以在WebApiConfig.cs的Register方法中設置DateFormatString,如下所示:
config.Formatters.JsonFormatter.SerializerSettings.DateFormatString = "yyyy-mm-dd HH:MM:ss";
后記,應用@uzr的答案中提到的DateTimeFormat可以確保所有內容都采用正確的格式。 謝謝大家的幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.