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...