Jackson入门指南:最流行JSON库的依赖配置与注解实战

2024-06-21 开发技术 298 次阅读 0 次点赞
Jackson是Java生态中最流行、高效的JSON处理库,基于流式解析实现Java对象与JSON的互转。文章介绍了其项目地址、Maven依赖配置以及常用注解(如@JsonProperty、@JsonIgnore、@JsonFormat),并提供了多种使用示例:对象与JSON相互转换、JSON与常用类型及泛型转换、以及JSON转树形结构的操作方法。文章内容全面,便于开发者快速上手。

Jackson是Java生态中最流行、功能最强大的JSON处理库,底层基于流式解析,能够高效地在Java对象与JSON数据之间进行序列化与反序列化。

常用地址

项目首页:https://github.com/FasterXML/jackson

maven仓库:https://mvnrepository.com/artifact/com.fasterxml.jackson

jackson-core: https://github.com/FasterXML/jackson-core

jackson-databind:https://github.com/FasterXML/jackson-databind

添加依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.12.4</version>
</dependency>

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

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

常用注解

@JsonProperty:设置映射字段

@JsonIgnore:忽略属性

@JsonFormat:时间格式化

示例代码

1、对象和JSON互相转换

模型:

@Data

public class Person {

    private String name;

    private int age;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")

    private Date birthday;

    @JsonIgnore

    private String idCard;

}

对象转json:

ObjectMapper mapper = new ObjectMapper();

String s = mapper.writeValueAsString(person);

json转对象:

Person person2 = mapper.readValue(s, Person.class);

MyValue value = mapper.readValue(new File(“data.json”), MyValue.class);

value = mapper.readValue(new URL(“http://some.com/api/entry.json”), MyValue.class);

value = mapper.readValue(“{"name":"Bob", "age":13}”, MyValue.class);

2、json与常用类型互相转换

Map<String, Integer> scoreByName = mapper.readValue(jsonSource, Map.class);

List<String> names = mapper.readValue(jsonSource, List.class);

mapper.writeValue(new File("names.json"), names);

3、json与泛型互相转换

Map<String, ResultValue> results = mapper.readValue(jsonSource,

   new TypeReference<Map<String, ResultValue>>() { } );

4、json转树形结构

ObjectNode root = mapper.readTree("stuff.json");

String name = root.get("name").asText();

int age = root.get("age").asInt();

root.with("other").put("type", "student");

String json = mapper.writeValueAsString(root);
最后更新于28分钟前
本文由人工编写,AI优化,转载请注明原文地址: Jackson入门指南:最流行JSON库的依赖配置与注解实战

评论 (0)

登录 后发表评论

暂无评论,快来发表第一条评论吧!