<!-- 9.fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
jsonArray.toJsonString(object)默認首字母小寫,但是有些時候,不想要這種默認機制,可以在實體類上加上@JSONField

package com.hainei.pojo.bo.toZonesData; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; /** * Created with IntelliJ IDEA. * User:wq * Date:2020/12/19 * Time: 15:19 * Description: 10.1作業人員在崗在位數據 */ @Data public class ZonesWorkPeoleBO { @JSONField(name = "QYBM") private String QYBM; @JSONField(name = "GWID") private String GWID; @JSONField(name = "GWMC") private String GWMC; @JSONField(name = "GWDD") private String GWDD; @JSONField(name = "GWSJ") private String GWSJ; @JSONField(name = "RYBMA") private String RYBMA; @JSONField(name = "RYXM") private String RYXM; @JSONField(name = "ZGRYSL") private String ZGRYSL; @JSONField(name = "RCSJ") private String RCSJ; @JSONField(name = "LCSJ") private String LCSJ; @JSONField(name = "STATUS") private Integer STATUS; private String createDate ; private String createBy; private String updateDate ; private String updateBy; private Integer Version; private Integer isHistory; private Integer Sync; private String syncDate; }
光這樣還不行,要替換springBoot的默認json轉化機制,需要在啟動類App中注入一個bean。這樣才能生效。
@Bean public HttpMessageConverters fastJsonHttpMessageConverters() { FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); fastConverter.setFastJsonConfig(fastJsonConfig); HttpMessageConverter<?> converter = fastConverter; return new HttpMessageConverters(converter); }
將json和List<T>互轉

package com.hainei.common.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import java.util.List; /** * Created by Administrator on 2018\10\30 0030. */ public class JsonListUtil { /** * List<T> 轉 json 保存到數據庫 */ public static <T> String listToJson(List<T> ts) { String jsons = JSON.toJSONString(ts); return jsons; } /** * json 轉 List<T> */ public static <T> List<T> jsonToList(String jsonString, Class<T> clazz) { @SuppressWarnings("unchecked") List<T> ts = (List<T>) JSONArray.parseArray(jsonString, clazz); return ts; } }
java實現數組集合轉成json格式
一、下載fastjson.jar
http://repo1.maven.org/maven2/com/alibaba/fastjson
二、項目添加jar包
Java Build Path
三、導入類
import com.alibaba.fastjson.JSON;
四、轉換(這里以集合為例)
List<List<String>> listOut = new ArrayList<>(); String jsonList = JSON.toJSONString(listOut);
json 和 數組的相互轉換

package com.hainei.common.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import java.util.List; /** * Created by Administrator on 2018\10\30 0030. */ public class JsonListUtil { /** * List<T> 轉 json 保存到數據庫 */ public static <T> String listToJson(List<T> ts) { String jsons = JSON.toJSONString(ts); return jsons; } /** * json 轉 List<T> */ public static <T> List<T> jsonToList(String jsonString, Class<T> clazz) { @SuppressWarnings("unchecked") List<T> ts = (List<T>) JSONArray.parseArray(jsonString, clazz); return ts; } }
阿里巴巴jsonArray將對象互轉的方法
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; //json為string類型的json字符串 //json字符串轉json對象 JSONObject jsonobject=JSONObject.parseObject(json); //json字符串轉換成List(Javabean)對象 List<YpzsSaleInfo> saleInfoList = (List<YpzsSaleInfo>)JSONObject.parseArray(json,YpzsSaleInfo.class); //json字符串轉換成Javabean對象 JSONObject.parseObject(json,YpzsSaleInfo.class); //獲取json對象里獲取值,String類型參數 String token=jsonobject.getString("key值"); //數組類型 JSONArray dataJsonArray =jsonobject.getJSONArray("SaleInfo"); //對象類型 JSONObject jsonobject1=jsonobject.getJSONObject("key值"); //Javabean對象(可以是任何對象比如jsonArray),轉換成String類型的JSON字符串 JSONObject.toJSONString(YpzsSaleInfo.class);//Javabean對象 //json對象轉javabean JSONObject jsonBean3=jsonobject.getJSONObject("小明"); YpzsSaleInfo parseBean=JSONObject.toJavaObject(jsonBean3, YpzsSaleInfo.class); //jsonArray增加值 JSONArray jsonArray=new JSONArray(); jsonArray.add(jsonBean3); //存值用put jsonobject.put("messageId",""); jsonobject.put("messageId",dataJsonArray); jsonobject.put("messageId",new YpzsSaleInfo());//實體 /***map的轉換**/ Map<String,String> mp =JSONObject.parseObject(jsonBean3.toJSONString(), Map.class); List<Map<String,String>> listmap =JSONObject.parseObject(jsonArray.toString(), List.class); public Object jwscqyInfoAdd(@RequestBody JSONObject params) { String qyzcQyxxbString=params.getJSONArray("sjsccsList").toJSONString(); List<QyzcQysjsccsb> list=JSONObject.parseArray(qyzcQyxxbString,QyzcQysjsccsb.class); QyzcQyxxb qyzcQyxxb = JSONObject.toJavaObject((JSONObject)params.get("scqyxx"), QyzcQyxxb.class);
https://www.cnblogs.com/h-java/p/10220737.html
https://www.liangzl.com/get-article-detail-9315.html
fastJson對對象進行操作時,調用的get、set方法
fasetJson轉對象時同樣要調用get、set方法,但是調用的get、set方法,對象字段首字母小寫 例如 getspeed()、setspeed(),(且使用fastjson轉對象后,字段都是首字母小寫,需要加@jsonFiled)而不是getSpeed()、setSpeed()。
使用fastjson將字符串轉換為對象時,出現對象部分字段屬性丟失的問題。