Как преобразовать 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

Комментарии
Отправить комментарий