我正在編寫nodejs
中的服務,該服務替換了現有系統中編寫的.NET
。該服務提供了一個JSON API,其中一個調用返回一個日期。對於JSON微軟日期格式爲/就是1599890827000
是毫秒偏移:強制JSON.stringify轉義正斜槓(即` /`)
/Date(1599890827000)/
我遇到的問題是,JSON.stringify
(在express
res.send
和res.json
使用)不逃避正斜槓,但現有的Microsoft庫(System.Web.Script.Serialization.JavaScriptSerializer)預計正斜槓將被轉義。
例如,客戶希望JSON是這樣的:
{
"Expires": "\/Date(1599890827000)\/"
}
但JSON.stringify
產生如下:
{
"Expires": "/Date(1599890827000)/"
}
第二個結果是完全有效的,但微軟庫不喜歡它,解析失敗。
有沒有什麼辦法可以強制Express/Node/JSON在JSON.stringify
中轉義正斜槓或處理這種情況?
我可以運行stringify
後,而是因爲我們的項目將是非常哈克不得不發送到客戶端,而不是讓之前轉換成JSON使用對象緩存系統的使用正則表達式替換。
注:我不能更改客戶端,只有api服務。
*「但現有的Microsoft庫(System.Web.Script.Serialization.JavaScriptSerializer)預計正斜槓進行轉義」 *不以我的經驗。這將是非常奇怪的,因爲完全沒有理由在JSON或JavaScript中轉義它們。我懷疑你的問題在別處。 –
奇怪的事實,但沒有逃脫的斜槓我得到這個異常'System.FormatException:/日期(1599898027000)/不是一個有效的DateTime值.'我不能更改客戶端 – antfx