fastjson將對象和json互轉,@JSONField的使用及不生效


<!-- 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;
}
View Code

 

光這樣還不行,要替換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;
    }
}
View Code

 

 

 

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;
    }
}
View Code

 

 阿里巴巴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將字符串轉換為對象時,出現對象部分字段屬性丟失的問題。

https://blog.csdn.net/qq912098812/article/details/109049919


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM