在Java中,處理JSON數據通常是必須的。然而,很多時候我們可能會遇到亂碼問題。這篇文章將介紹如何接收JSON中文時避免亂碼。
// 假設從API中獲取到的JSON數據為: String jsonString = "{\"name\": \"張三\", \"age\": 20}"; // 建立一個解析JSON的對象 JSONObject jsonObject = new JSONObject(jsonString); // 獲取名字 String name = jsonObject.getString("name"); // 獲取年齡 int age = jsonObject.getInt("age");
然而,上述代碼在接收到含有中文的JSON數據時,可能會遇到亂碼問題。這是因為JSON中的中文數據使用的是UTF-8編碼,而Java則默認使用的是ISO-8859-1編碼。因此,我們需要對傳入的JSON數據進行編碼轉換。
// 假設從API中獲取到的JSON數據為: String jsonString = "{\"name\": \"張三\", \"age\": 20}"; // 進行編碼轉換 jsonString = new String(jsonString.getBytes("ISO-8859-1"), "UTF-8"); // 建立一個解析JSON的對象 JSONObject jsonObject = new JSONObject(jsonString); // 獲取名字 String name = jsonObject.getString("name"); // 獲取年齡 int age = jsonObject.getInt("age");
在上述代碼中,我們利用了Java中String類可以使用getBytes方法將ISO-8859-1編碼的字符串轉換為字節數組。然后我們再使用String的構造函數將字節數組轉換為UTF-8編碼的String對象。這樣我們就成功地避免了從JSON中獲取中文數據時可能遇到的亂碼問題。