溫馨提示×

Java怎么處理JSON序列化與反序列化

小億
118
2024-01-29 12:59:44
欄目: 編程語言

在Java中,可以使用Jackson庫來處理JSON的序列化和反序列化。下面是一個簡單的例子:

首先,需要在Maven或Gradle中添加Jackson的依賴項:

Maven:

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

Gradle:

implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3'

然后,可以使用以下代碼將Java對象序列化為JSON字符串:

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonSerializationExample {
    public static void main(String[] args) throws Exception {
        // 創(chuàng)建一個Java對象
        Person person = new Person("John", 25);

        // 創(chuàng)建ObjectMapper對象
        ObjectMapper objectMapper = new ObjectMapper();

        // 將Java對象序列化為JSON字符串
        String jsonString = objectMapper.writeValueAsString(person);

        // 打印JSON字符串
        System.out.println(jsonString);
    }
}

上述代碼將輸出以下JSON字符串:

{"name":"John","age":25}

接下來,可以使用以下代碼將JSON字符串反序列化為Java對象:

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonDeserializationExample {
    public static void main(String[] args) throws Exception {
        // JSON字符串
        String jsonString = "{\"name\":\"John\",\"age\":25}";

        // 創(chuàng)建ObjectMapper對象
        ObjectMapper objectMapper = new ObjectMapper();

        // 將JSON字符串反序列化為Java對象
        Person person = objectMapper.readValue(jsonString, Person.class);

        // 打印Java對象的屬性
        System.out.println(person.getName());
        System.out.println(person.getAge());
    }
}

上述代碼將輸出以下內容:

John
25

需要注意的是,在進行反序列化時,需要提供目標Java類的類型(上例中為Person.class)。

0