WebAPI序列化後的時間中含有「T」的解決方法

2021-07-11 14:18:31 字數 1572 閱讀 5171

web api中序列化後的時間中含有「

t」的解決方法

原來的以下內容只解決了序列化的問題,但作為引數反序列時,會有不完全對應格式將不能正確得到日期的問題。

以下為完美方法:

1、在webapiconfig.cs的register方法中加入以下語句,插入自定義的jsondatetimeconverter格式

globalconfiguration.configuration.formatters.jsonformatter.serializersettings.converters.insert(

0, new jsondatetimeconverter());

2、新建乙個類,名為jsondatetimeconverter.cs,重寫isodatetimeconverter的readjson方法,內容如下

/// /// json日期帶t格式轉換

///

public class jsondatetimeconverter : isodatetimeconverter

else

}public jsondatetimeconverter()

}

ok,到此完美解決。

以下為原來內容:

在web api

中,系統會自動將返回的物件序列化為

json

資料,但是如果物件中含有時間的話,序列化後的時間中會含有「

t」字元,如下:

[csharp]view plain

copy

public

object

getjson()  

;  return

rst;  

}  

返回後返回的json

**如下:

[html]view plain

copy

web api返回的是標準格式時間,但是我們平常並不需要標準格式的時間,那麼我們如何修改返回的資料的時間格式呢?

在web api

中,我們可以在

webapiconfig.cs

的register

函式中新增以下配置來定義返回的時間型別格式,如下:

[csharp]view plain

copy

//配置返回的時間型別資料格式

globalconfiguration.configuration.formatters.jsonformatter.serializersettings.converters.add(  

newnewtonsoft.json.converters.isodatetimeconverter()  

);  

datetimeformat中的格式即是我們自定義的時間格式,定義後我們再訪問

getjson

介面看看返回的資料會怎樣,如下:

[html]view plain

copy

哈哈,變成了我們常用的格式了

WebApi系列 按需序列化字段 Hot

起初只是乙個想法,一次討論,乙個設想,但相信一定可以實現,具體的事情是這樣的,有個對外的api專案,它為一些終端裝置提供資料,如手機,平板,pc,當然你也可以說它為很多平台提供資料win32,mac,ios,android,對於pc裝置來說,介面返回的資料量當然沒有那麼敏感,但對於移動裝置,對這點要...

序列化後資料的解讀

arr array school array 清華 code 4111010003 path 北京 serialize str serialize arr echo serialize str 得到以下資料 a 2 s 4 path s 4 北京 和json長得挺像,但還真不是。將以上陣列轉化為 a...

Django序列化後返回資料 時間欄位帶T

django序列化後返回資料 時間欄位帶t 2021 01 21t18 12 13 解決前台顯示 setting.py rest framework 解決前台顯示 資料庫儲存 setting.py use tz false序列化器 class userserializer serializers.m...