掘金日新计划 · 8 月更文挑战第33天--RESTful-Json对象返回

58 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第33天,点击查看活动详情

今天我们来学习一下如何返回json对象

1.pom.xml文件新增三个依赖(jackson-core,jackson-databind,jackson-annotations)

ps:这边三个依赖的版本我们设置成一样,都是2.9.9

image.png

<dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-core</artifactId>
   <version>2.9.9</version>
</dependency>
<dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
   <version>2.9.9</version>
</dependency>
<dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-annotations</artifactId>
   <version>2.9.9</version>
</dependency>

2.依赖更新之后,我们新增的依赖导入到lib中

image.png

3.返回单个Person对象

image.png

@GetMapping("person")
public Person getPerson(Integer id){
    Person p1 = new Person();
    if(id==1){
        p1.setName("xiaoming");
        p1.setAge(10);
    }else {
        p1.setName("haha");
        p1.setAge(11);
    }
    return  p1;
}

代码说明:
public Person:我们之前的返回值为void String Int等类型,现在我们要返回的是对象,所以可以设置成Person对象

image.png

image.png

4.返回多个Person对象

image.png

//返回多个对象
@GetMapping("/persons")
public List<Person> getPersons(){
    List list = new ArrayList<>();
    Person p1 = new Person();
    p1.setAge(10);
    p1.setName("haha");
    p1.setCreateTime(new Date());
    list.add(p1);
    Person p2 = new Person();
    p2.setAge(11);
    p2.setName("xiaohong");
    p1.setCreateTime(new Date());
    list.add(p2);
    return  list;
}

代码说明: 多个对象,使用List方式返回

image.png

  • 存在的问题,createTime类型为Date,返回值却是时间戳毫秒的形式

image.png
解决方案:在定义时间字段的entity类中,注解说明@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

  • 重启项目
  • 浏览器访问 image.png
    发现时间和当前的时间相差8个小时,这是因为时区导致的问题,因此我们还要进行时区的设置

image.png

  • 重启项目 这时候已经达到我们的要求: image.png