千家信息网

json框架的介绍以及Jackson返回结果的处理方式

发表于:2024-10-23 作者:千家信息网编辑
千家信息网最后更新 2024年10月23日,这篇文章主要介绍"json框架的介绍以及Jackson返回结果的处理方式",在日常操作中,相信很多人在json框架的介绍以及Jackson返回结果的处理方式问题上存在疑惑,小编查阅了各式资料,整理出简
千家信息网最后更新 2024年10月23日json框架的介绍以及Jackson返回结果的处理方式

这篇文章主要介绍"json框架的介绍以及Jackson返回结果的处理方式",在日常操作中,相信很多人在json框架的介绍以及Jackson返回结果的处理方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"json框架的介绍以及Jackson返回结果的处理方式"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

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

实体类代码如下:

public class rData {        @JsonIgnore    private String code;    @JsonProperty(value = "agenum")    private int age;    @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")    private Date createDate;    @JsonInclude(JsonInclude.Include.NON_NULL)    private String name;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Date getCreateDate() {        return createDate;    }    public void setCreateDate(Date createDate) {        this.createDate = createDate;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getCode() {        return code;    }    public void setCode(String code) {        this.code = code;    }        public rData(String code, int age) {        this.code = code;        this.age = age;    }    public rData(String code, int age, Date createDate, String name) {        this.code = code;        this.age = age;        this.createDate = createDate;        this.name = name;    }}

测试类代码:

@RestControllerpublic class HttpController {    @GetMapping("/testjson")    public Object param6(){        return new rData("jackson",1,new Date(),"lion");    }}

结果:

{"createDate":"2018-09-18 09:36:31","name":"lion","agenum":1}

code被忽略了,所以不显示;age被别名代替"agenum"

使用jackson返回json数据

1、SpringMVC如何返回json数据

1.1、添加jar包

       com.fasterxml.jackson.core      jackson-databind      2.9.5  

1.2、配置spring文件,添加mvc命名空间和约束等

 xmlns:mvc="http://www.springframework.org/schema/mvc"  http://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc.xsd 

1.3、方法上添加@ResponseBody

 @ResponseBody

2、例子

2.1、配置pom.xml

           junit      junit      4.11      test              org.springframework      spring-webmvc      5.0.8.RELEASE              org.springframework      spring-web      5.0.8.RELEASE                  org.springframework      spring-core      5.0.8.RELEASE                  org.springframework      spring-context      5.0.8.RELEASE                  org.springframework      spring-beans      5.0.8.RELEASE                  org.springframework      spring-context-support      5.0.8.RELEASE                  org.springframework      spring-expression      5.0.8.RELEASE                  aopalliance      aopalliance      1.0              org.aspectj      aspectjweaver      1.8.13              org.springframework      spring-aspects      5.0.8.RELEASE              org.springframework      spring-aop      5.0.8.RELEASE                  com.fasterxml.jackson.core      jackson-databind      2.9.5      

2.2、配置spring.xml

                                                         

2.3、配置web.xml

  Archetype Created Web Application      springMvc    org.springframework.web.servlet.DispatcherServlet              contextConfigLocation      classpath:spring.xml            springMvc    /          characterEncodingFilter          org.springframework.web.filter.CharacterEncodingFilter              encoding      utf-8            characterEncodingFilter    /*  

2.4、添加User实体类

package com.fan.entity;import java.util.Arrays;import java.util.Date;public class User {    private String username;    private String password;    private int[] box;    private Date date;    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public int[] getBox() {        return box;    }    public void setBox(int[] box) {        this.box = box;    }    public Date getDate() {        return date;    }    public void setDate(Date date) {        this.date = date;    }    @Override    public String toString() {        return "User{" +                "username='" + username + '\'' +                ", password='" + password + '\'' +                ", box=" + Arrays.toString(box) +                ", date=" + date +                '}';    }}

2.5、 TestJsonController测试类

@Controllerpublic class TestJsonController {     //http://localhost:8080/testjson1    @RequestMapping("/testjson1")    @ResponseBody //返回json字符串注解    public User test(){        User user=new User();        user.setUsername("malijuan");        user.setPassword("123");        user.setBox(new int[]{1,2,3});        user.setDate(new Date());        return user;    }    //http://localhost:8080/testjson2    @RequestMapping("/testjson2")    @ResponseBody  //返回json字符串注解    public List test2(){        User user=new User();        List list=new ArrayList();        for(int i=0;i<5;i++){            user.setUsername("malijuan");            user.setPassword("123");            user.setBox(new int[]{1,2,3});            user.setDate(new Date());            list.add(user);        }        return list;    }}

2.6、启动tomcat测试

测试1

到此,关于"json框架的介绍以及Jackson返回结果的处理方式"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0