Spring Boot 학습 여행: (4) springboot 통합 fastjson

15451 단어 spring-boot
springboot 에서 기본적으로 사용 하 는 jackson 이지 만 모 보 의 fastjson 성능 이 좋 고 평소에 사용 하 는 습관 이 있다 고 들 었 습 니 다. 그래서 통합 해 보 겠 습 니 다.우선 pom 에서 의존 도 를 가 져 옵 니 다.
  <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>fastjsonartifactId>
        <version>1.2.15  version>
    dependency>
 ```
                         ,       fastjson。
        fastjson      WebMvcConfigurerAdapter  fastjson     Converters 

@ Configuration public class FaJSonConfig extends WebMvcConfigurerAdapter {public void configureMessageConverters (List > converters) {/ * 1 Converters 변환 메시지 의 대상 을 미리 정의 합 니 다 * 2 fastjson 설정 정보 추가 * 3 아침 converter 에 설정 메시지 추가 * 4. converters 에 converters 추가 * / 슈퍼 configureMessageConverters(converters);// FastJsonHttpMessageConverter fastConstructor=new FastJsonHttpMessageConverter();//1 FastJsonConfig fastJsonConfig=new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);//2 fastConstructor.setFastJsonConfig(fastJsonConfig);//3 converters.add(fastConstructor);//4 } }
// bean

@Configuration
public class FaJsonConfig extends WebMvcConfigurerAdapter{
    /*public void configureMessageConverters(List> converters) {
        *//**1        Converters        
         * 2   fastjson     
         * 3  converter       
         * 4. converter   converters 
         *//*
        super.configureMessageConverters(converters);//
        FastJsonHttpMessageConverter fastConstructor=new FastJsonHttpMessageConverter();//1
        FastJsonConfig fastJsonConfig=new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);//2
        fastConstructor.setFastJsonConfig(fastJsonConfig);//3
        converters.add(fastConstructor);//4
    }*/
        @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);
        }
}

@JSONField(serialize=false), , , 。
fastjson
usermodel


public class User{
    private int id;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;//    
    @JSONField(serialize = false)  
    private String name;
    @JSONField(deserialize = false)  
    private int age;
    @JSONField(name = "list")
    private List
addrList; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public List
getAddrList() { return addrList; } public void setAddrList(List
addrList) { this.addrList = addrList; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } }

address model

public class Address{
    /*
     *   
     */
    private String province;
    /*
     *   
     */
    private String city;
    /*
     *   
     */
    private String area;
    /*
     *       
     */
    private String detail;
    public String getProvince() {
        return province;
    }
    public void setProvince(String province) {
        this.province = province;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getArea() {
        return area;
    }
    public void setaArea(String area) {
        this.area = area;
    }
    public String getDetail() {
        return detail;
    }
    public void setDetail(String detail) {
        this.detail = detail;
    }

}

json

{“addrList”:[{“city”:”  ”,”detail”:”   ”,”area”:”  ”,”province”:”  ”},{“city”:”   ”,”detail”:”    ”,”area”:”   ”,”province”:”   ”}],”age”:22,”id”:1,”name”:”cxhc”}

1、

    public static void main( String[] args )
    {
        SpringApplication.run(App.class,args);
        System.out.println( "Hello World" );
        String jsonString="{'addrList':[{'city':'  ','detail':'   ','area':'  ','province':'  '},{'city':'   ','detail':'    ','area':'   ','province':'   '}],'age':22,'id':1,'name':'cxhc'}";
        User user = JSON.parseObject(jsonString, User.class);
        System.out.println(user);

    }


User [id=1, name=cxhc, age=22, addrList=[Address [province= , city= , area=null, detail= ], Address [province= , city= , area=null, detail= ]]]
2、

public static void main( String[] args )
    {
        SpringApplication.run(App.class,args);
        System.out.println( "Hello World" );
        User user=new User();
        user.setName("cxhc");
        user.setCreateTime(new Date());
        user.setAge(11);
        user.setId(1);
        List 
list=new ArrayList
(); Address address=new Address(); address.setaArea(" "); address.setCity(" "); address.setDetail(" "); address.setProvince(" "); list.add(address); address.setaArea(" "); address.setCity(" "); address.setDetail(" "); address.setProvince(" "); list.add(address); user.setAddrList(list); System.out.println(JSON.toJSONString(user)); }

//
{“addrList”:[{“city”:” ”,”detail”:” ”,”province”:” ”},{“city”:” ”,”detail”:” ”,”province”:” ”}],”age”:22,”id”:1,”name”:”cxhc”}
3、JSONField

package com.alibaba.fastjson.annotation;
public @interface JSONField {
// ,1.1.42
int ordinal() default 0;
//
String name() default “”;
// ,
String format() default “”;
//
boolean serialize() default true;
//
boolean deserialize() default true;
}
3.1

@JSONField(name = "list")
 private List
addrList;

3.2

  @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;//    

3.3
@JSONField(serialize = false)

3.4
@JSONField(deserialize = false)

:http://www.haha174.top/article/details/254138
:https://github.com/haha174/boot.git

좋은 웹페이지 즐겨찾기