Java中使用JSON進行數據傳輸和解析已經非常常見。然而,有些開發者在處理JSON時可能會遇到編碼問題。這個問題的解決方法是在JSON設置合適的編碼,以保證數據正確傳輸和解析。
import java.nio.charset.StandardCharsets; import com.alibaba.fastjson.JSON; public class JsonTest { public static void main(String[] args) { String jsonStr = "{"name":"張三","age":18}"; byte[] jsonBytes = jsonStr.getBytes(StandardCharsets.UTF_8); String encodeJsonStr = new String(jsonBytes, StandardCharsets.ISO_8859_1); System.out.println("使用UTF-8編碼的JSON數據:" + jsonStr); System.out.println("使用ISO-8859-1編碼的JSON數據:" + encodeJsonStr); String decodeJsonStr = new String(encodeJsonStr.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); System.out.println("從ISO-8859-1轉碼為UTF-8的JSON數據:" + decodeJsonStr); // 使用FastJSON解析JSON JSONObject jsonObject = JSON.parseObject(jsonStr); System.out.println("解析JSON數據得到的Java對象:" + jsonObject.toString()); } }
上述代碼中的JSON字符串使用UTF-8編碼? 為了確保數據正確,程序首先將原始字符串按照UTF-8編碼轉為字節數組。然后,將字節數組使用ISO-8859-1編碼,得到一個新的字符串。最后,程序又將新字符串使用UTF-8編碼,得到了可以正確傳輸和解析的JSON數據。
此外,在使用FastJSON解析JSON時,我們可以使用JSON.parseObject()方法將JSON字符串直接轉為Java對象。這個方法內部會將字符串轉為字節數組,使用默認編碼進行轉碼,并最終得到正確的JSON對象。
上一篇css 動畫改變大小
下一篇vue排行自動滾動