0
當使用Laravel 5.4並使用無符號BIGINT字段類型時,遇到了奇怪的問題。在我的數據庫我Laravel 5.4 - JSON響應減去數字
一個字段的值是這樣的:
10156480263320077 10157375840500077 285320181803715 798994416871156 10152807376710077 620382424666122 10152824605589176 824259214287650 10156820510510077
當我試圖通過使用這些值JSON響應轉換:
return response()->json(['ids' => $ids]);
他們中的一些1從中減去。它是在77結尾的那些只發生:
10156480263320077 10157375840500077 10152807376710077 10157375840500077
我通過編碼效應初探之前他們更改爲字符串,而不是數字固定我的問題。我認爲這是因爲JSON試圖將這些值視爲INT而不是BIGINT。
但是我對編碼它們之前改變的值不滿意。任何想法如何通過設置JSON響應選項來實現?我知道使用setEncodingOptions(JSON_NUMERIC_CHECK)
會將字符串轉換爲數字值,但是可以選擇在其他方向上進行編碼,並將數字編碼爲字符串,因此不會出現此問題?
使用你的代碼時,我仍然得到錯誤的值。數字以76而不是77結尾。 – Zank
我沒有使用json_decode。這些id是我的ajax調用的響應,所以json_object直接在JS中使用。進一步檢查後,它看起來像由Chrome o_O更改值當我用var_dump打印響應時,看起來沒有錯誤。只有當返回的結構格式爲json時纔會出現問題。 – Zank
使用FireFox,Opera和Vivaldi時也會出現同樣的情況。 'return response() - > json(['ids'=> array(10156480263320077,10157375840500077,285320181803715,798994416871156,10152807376710077,620382424666122,10152824605589176,824259214287650,10156820510510077)]);' – Zank