色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

byte放到json變了

謝彥文2年前10瀏覽0評論

最近在開發后端應用時,遇到了一個奇怪的問題:將byte類型的數據放到json中傳輸時,數據變得很奇怪。

byte[] bytes = new byte[]{1, 2, 3};
JSONObject json = new JSONObject();
json.put("bytes", bytes);
System.out.println(json.toString());

上面的代碼中,我們定義了一個byte數組,然后將其放到了JSONObject中,并將json輸出到控制臺中。結果卻發現,輸出的json中bytes對應的值變成了一串看似無意義的字符串,而不是原本的byte數組。

{"bytes":"AQID"}

這是因為在JSON中,字符串只支持Unicode字符集,而不支持二進制數據。因此,在將byte數組放入JSONObject中時,系統會默認將其轉化為字符串。

那么,我們該如何處理這種問題呢?一個常見的解決方案是將byte數組先進行base64編碼,然后將其放入JSONObject中,這樣在發送到客戶端后,客戶端再將其進行base64解碼即可。

byte[] bytes = new byte[]{1, 2, 3};
JSONObject json = new JSONObject();
json.put("bytes", Base64.getEncoder().encodeToString(bytes));
System.out.println(json.toString());

使用關聯的base64編碼方式,我們可以將byte數組成功地放入JSONObject中,并保持其完整性。

{"bytes":"AQID"}

至此,我們將byte放入json變成了字符串的問題得到了解決。使用base64編碼可以將byte數組成功地轉化為字符串,并在傳輸中保持其完整性。