Jackson序列化和反序列化java对象
程序员文章站
2022-06-16 12:38:01
...
哈喽,大家好,今天要跟大家分享的是Jackson序列化和反序列化JSON,相信点击进来的家人们,都是为了看代码的,那梦梦就废话不多说了,直接上操作了。
首先,我们先编写一个实体类——产品类。
public class Product {
private Integer id;
private String name;
private Integer price;
private Date birthday;
public Product(Integer id, String name, Integer price, Date birthday) {
this.id = id;
this.name = name;
this.price = price;
this.birthday = birthday;
}
public Product() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
其次,我们编写一个controller,在controller里面实现具体操作。
注意:Jackson的所有JSON操作都是在ObjectMapper中实现。
package cn.lmh.controller;
import cn.lmh.pojo.Product;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/jackson")
public class JacksonController {
@Resource
public ObjectMapper objectMapper;
private static Map<Integer, Product> productMap = new HashMap<>();
/**
* 使用静态代码快,实例化一些Product对象,封装在集合中
*/
static {
productMap.put(1,new Product(1,"口红",399,new Date()));
productMap.put(2,new Product(2,"眼影",199,new Date()));
productMap.put(3,new Product(3,"眉笔",99,new Date()));
productMap.put(4,new Product(4,"唇釉",299,new Date()));
}
/**
* Jackson序列化java对象为JSON
* @param id
* @return
* @throws JsonProcessingException
*/
@GetMapping("/products/{id}")
public Product getProductById(@PathVariable("id") Integer id) throws JsonProcessingException {
Product product = productMap.get(id);
//将Java对象序列化为JSON对象
String writeValueAsString = objectMapper.writeValueAsString(product);
System.out.println("===序列化的字符串:"+writeValueAsString);
return product;
}
/**
* Jackson反序列化JSON为java对象
* @return
* @throws JsonProcessingException
*/
@GetMapping("/getUserByJson")
public Product getProductByJson() throws JsonProcessingException {
//准备一个JSON字符串
String json = "{"id":2,"name":"眼影","price":199,"birthday":"2021-07-28 20:18:24"}";
//反序列化,将Java对象转化为JSON对象
Product product = objectMapper.readValue(json, Product.class);
System.out.println("===反序列化的java对象:"+product);
return product;
}
}
接下来我们就可以启动项目测试了,如下是控制台打印的结果。
好了,以上便是这个代码操作了,如果小伙伴有问题的话,可以再评论中留下你的足迹哦。
上一篇: WSL挂载移动硬盘U盘
下一篇: Docker 从容器中拷贝文件到宿主机中
推荐阅读
-
IOS开发(74)之把 Array 和 Dictionaries 序列化成 JSON 对象
-
Python pickle类库介绍(对象序列化和反序列化)
-
解决Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题
-
详解 C# 中XML对象的序列化和反序列化
-
JS对象序列化成json数据和json数据转化为JS对象的代码
-
Java I/O中的对象序列化
-
Redis缓存Object,List对象 - Java 对象和List的序列化和反序列化
-
java对象序列化学习笔记 Java网络应用JVM编程Socket
-
Java对象的序列化、反序列化
-
redis Jedis序列化自定义存储list对象和map数据