Как преобразовать Java объект в/из JSON

В этом посте будет описано как использовать Jackson 2.x чтобы преобразовать Java объекты в/из JSON.

Преобразовать объект в JSON

Используйте writeValue(...) для преобразования Java объекта в JSON файл.

Используйте writeValueAsString(...) для преобразования Java объекта в JSON строку.

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;

public class Main {
    public static void main(String[] args){
        ObjectMapper mapper = new ObjectMapper();

        Animal animal = new Animal();
        animal.setName("cat");

        try {
            // Java объект в JSON файл
            mapper.writeValue(new File("/home/myuser/animals.json"), animal);

            // Java объект в JSON строку
            String jsonString = mapper.writeValueAsString(animal);
            System.out.println(jsonString);
        } catch (Exception e){
            System.out.println(e.getMessage());
        }
    }
}

Вывод:

{"name":"cat"}

Простой Java класс для преобразования в JSON.

public class Animal {
    private String name;

    public Animal(){}

    public void setName(String name){
        this.name = name;
    }

    public String getName(){
        return this.name;
    }
}

Преобразовать объект из JSON

Используйте readValue(...) для преобразования Java объекта из JSON.

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.net.URL;

public class FromJSON {
    public static void main(String[] args){
        ObjectMapper mapper = new ObjectMapper();
        try {
            // Java объект из JSON файла
            Animal animal = mapper.readValue(new File("/home/alex/animals.json"), Animal.class);

            // Java объект из JSON файла по URL (если данный файл доступен по указанному URL)
            // Animal animalFromWeb = mapper.readValue(new URL("http://example.com/api/animals.json"), Animal.class);

            // Java объект из JSON строки
            Animal animalFromString = mapper.readValue("{\"name\" : \"dog\"}", Animal.class);

            System.out.println("Name of animal from JSON file: "+animal.getName());
            System.out.println("Name of animal from JSON string: "+animalFromString.getName());
        } catch (Exception e){
            System.out.println(e.getMessage());
        }
    }
}

Вывод:

Name of animal from JSON file: cat
Name of animal from JSON string: dog

Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки