导入依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.3</version>
DEMO
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.List;
public class Jackson {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
/**
* JavaBean转化为Json
*/
User user = new User("张三", 18);
String json = mapper.writeValueAsString(user);
/**
* Json转换为JavaBean
*/
User user1 = mapper.readValue(json, User.class);
/**
* Json转化为List 方式一
*/
ArrayList<User> list = new ArrayList<User>();
String listJson = mapper.writeValueAsString(list);
JavaType userListType = mapper.getTypeFactory().constructArrayType(User.class);
List<User> userArrayList = (ArrayList<User>)mapper.readValue(listJson, userListType);
/**
* Json转化为List 方式二 推荐此方式
* 注意:path与get两者通过key获取value的区别
* 当key不存在时,path返回MissNode对象
* 当key不存在时,get返回null
*
*/
ArrayList<User> users = new ArrayList<User>();
JsonNode nodeTree = mapper.readTree(listJson);
for (JsonNode node : nodeTree) {
String name = node.path("name").asText();
int age = node.path("age").asInt();
User u = new User(name, age);
users.add(u);
}
}
}
参考
Java ObjectMapper get() path()方法的区别_我这不是胖我是幸福肥的博客-优快云博客