常用json框架介绍和Jackson返回结果处理

简介:介绍常用json框架和注解的使用,自定义返回json结构和格式

    1、常用框架 阿里 fastjson,谷歌gson等
        JavaBean序列化为Json,性能:Jackson > FastJson > Gson > Json-lib 同个结构
        Jackson、FastJson、Gson类库各有优点,各有自己的专长
        空间换时间,时间换空间

    2、jackson处理相关自动
        指定字段不返回:@JsonIgnore
        指定日期格式:@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")
        空字段不返回:@JsonInclude(Include.NON_NUll)
        指定别名:@JsonProperty

main方法

package net.xdclass.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication //一个注解顶下面3个
//@SpringBootConfiguration
//@EnableAutoConfiguration
//@ComponentScan
public class XdclassApplication {

	public static void main(String[] args) {

		SpringApplication.run(XdclassApplication.class, args);
	}
}

控制器:

package net.xdclass.demo.controller;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import net.xdclass.demo.domain.User;
import org.springframework.web.bind.annotation.*;

//@RestController返回json格式
//就不需要每个方法都写@ResponseBody
//@RestController=@Controller+@ResponseBody
@RestController
//自定义控制器访问名称
@RequestMapping("/sample")
public class SampleController {

   
    /**
     * 测试json
     * @return
     */
    @GetMapping("test_json")
    public Object testJson(){
        return new User(11,"abcddf","18302088970",new Date());
    }
    
}

User类:

package net.xdclass.demo.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.Date;

public class User {

    private int age;
    @JsonIgnore//指定字段不返回给前端
    private String pwd;

    @JsonProperty("account")//指定别名(关键字段)
    @JsonInclude(JsonInclude.Include.NON_NULL)//空字段不返回
    private String phone;

    //指定日期格式
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss",locale = "zh",timezone = "GMT+8")
    private Date createTime;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }



    public User(){
        super();
    }

    /**
     * 通过Geberate(按快捷键Alt+Insert)-->Constructor生成构造方法
     * @param age
     * @param pwd
     * @param phone
     * @param createTime
     */
    public User(int age, String pwd, String phone, Date createTime) {
        super();
        this.age = age;
        this.pwd = pwd;
        //this.phone = phone;
        this.createTime = createTime;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值