在Java的開發過程中,經常需要將List集合轉換成JSON格式進行傳輸或存儲,而有些情況下會遇到中文亂碼的問題。以下是一些解決方法。
第一種方式:
Listpersons = new ArrayList<>(); //填充persons JSONArray jsonArray = JSONArray.fromObject(persons); String jsonStr = jsonArray.toString();
這種方法需要使用Json-lib庫,可以將List直接轉換為JSONArray類型,再轉為字符串,并不會出現中文亂碼。但需要注意的是,如果存入數據庫中,因數據庫編碼問題,仍有可能亂碼。
第二種方式:
Listpersons = new ArrayList<>(); //填充persons List
這種方法需要使用fastjson庫,將List轉為List
第三種方式:
Listpersons = new ArrayList<>(); //填充persons String jsonStr = JSON.toJSONStringWithDateFormat(persons,"yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty,SerializerFeature.WriteNullNumberAsZero,SerializerFeature.WriteNullListAsEmpty);
這種方法同樣使用fastjson庫,但是通過使用JSON.toJSONStringWithDateFormat方法并設置SerializerFeature.WriteMapNullValue、SerializerFeature.WriteNullStringAsEmpty、SerializerFeature.WriteNullNumberAsZero、SerializerFeature.WriteNullListAsEmpty等特性轉換規則,避免了中文亂碼。
以上幾種方法都可以實現將List集合轉換成JSON格式,并且通過選擇不同的轉換方式來避免中文亂碼的問題。