Jackson 和ObjectMapper

本文介绍如何使用Jackson库进行JSON数据的序列化和反序列化操作,包括定义POJO类、使用ObjectMapper读取和写入JSON数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.10.1</version>
        </dependency>
public static class Person {
        public String name;
        public String address;
        public String mobile;

       @JsonCreator
        public Person(@JsonProperty("name") String name,
                      @JsonProperty("address") String address,
                      @JsonProperty("mobile") String mobile) {
            this.name = name;
            this.address = address;
            this.mobile = mobile;
        }


    }
public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        String json = "{\"id\": \"0001\", \"name\" : \"Coca Cola\", \"price\": 3}";

        JsonNode jsonNode = (JsonNode) mapper.readValue(json, JsonNode.class);
        System.out.println(jsonNode);

        ObjectMapper objectMapper = new ObjectMapper();

        Person person = new Person("name", "address", "mobile");

       //反序列化一个Json字符串
        System.out.println(objectMapper.writeValueAsString(person));

        //序列化一个Person对象
        Person person2 = objectMapper.readValue(objectMapper.writeValueAsString(person), Person.class);
        System.out.println(person2.address);
    }

 

要配置 JacksonObjectMapper,你可以按照以下步骤进行操作: 1. 首先,确保你已经添加了 Jackson 的依赖到你的项目中。在 Maven 项目中,可以在 pom.xml 文件中添加以下依赖: ```xml <dependencies> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.4</version> </dependency> </dependencies> ``` 2. 创建一个 ObjectMapper 对象,并设置你所需的配置选项。例如,如果你想要忽略未知的属性,你可以通过调用 `configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)` 方法来配置 ObjectMapper。 ```java import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); ``` 3. 如果需要,你还可以注册自定义的序列化器反序列化器。例如,如果你想要定制某种类型的序列化/反序列化行为,可以通过调用 `registerModule()` 方法来注册一个自定义的模块。 ```java import com.fasterxml.jackson.databind.module.SimpleModule; SimpleModule module = new SimpleModule(); module.addSerializer(MyCustomType.class, new MyCustomSerializer()); module.addDeserializer(MyCustomType.class, new MyCustomDeserializer()); objectMapper.registerModule(module); ``` 以上是基本的配置过程,根据你的需求具体情况,你可以根据 Jackson 的文档进一步了解并配置 ObjectMapper
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值