欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java list轉json中文

林玟書1年前7瀏覽0評論

在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>list = new ArrayList<>();
for(Person person:persons){
Mapmap = new HashMap<>();
map.put("name",person.getName());
map.put("age",person.getAge());
list.add(map);
}
String jsonStr = JSON.toJSONString(list, SerializerFeature.DisableCircularReferenceDetect,SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty,SerializerFeature.WriteNullNumberAsZero,SerializerFeature.WriteNullListAsEmpty,SerializerFeature.WriteDateUseDateFormat);

這種方法需要使用fastjson庫,將List轉為List,再通過fastjson的toJSONString方法轉為字符串。由于fastjson默認處理中文為Unicode編碼,需要使用SerializerFeature.DisableCircularReferenceDetect關閉引用檢測并開啟SerializerFeature.WriteMapNullValue、SerializerFeature.WriteNullStringAsEmpty、SerializerFeature.WriteNullNumberAsZero、SerializerFeature.WriteNullListAsEmpty、SerializerFeature.WriteDateUseDateFormat等特性來設置轉換規則。

第三種方式:

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格式,并且通過選擇不同的轉換方式來避免中文亂碼的問題。