Конвертация Java объектов в JSON – Devcolibri – Android для начинающих

Конвертация Java объектов в JSON

Конвертация Java объектов есть одним из часто-используемых в разработке WEB-ресурсов. В этом уроке я покажу, как конвертировать Java объект в JSON или с JSON в Java объект.

Шаг 1

Для того чтобы манипулировать конвертированием мы будем использовать библиотеку Jackson.

Давайте создадим Maven project и добавим в pom.xml следующие зависимости:

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.2.2</version>
    </dependency>
</dependencies>

Шаг 2

Теперь добавим POJO который мы и будем конвертировать:

package pojo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;

public class User {

    @JsonProperty("Number")
    private long id;

    @JsonProperty("First Name")
    private String name;

    @JsonProperty("Phone Number")
    private String phone;

    @JsonIgnore
    private String level;

    public User() {
    }

    public User(long id, String name, String phone, String level) {
        this.id = id;
        this.name = name;
        this.phone = phone;
        this.level = level;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    @Override
    public String toString() {
        return "User[ID:" + id + ", Name: " + name + ", Phone: " + phone + "]";
    }
}

Обратите внимание, обязательно должен быть пустой конструктор и getter & setter.

Как вы видите мы используем две аннотации:

@JsonProperty(“name”) – эта говорит, что данный атрибут в JSON будет именоваться как name

@JsonIgnore – а эта аннотация игнорирует данный атрибут и в результате конвертирования он не будет добавлен в JSON.

Шаг 3

Теперь создадим класс конверте где будут все методы, и назовем его Converter.java:

package util;

import com.fasterxml.jackson.databind.ObjectMapper;
import pojo.User;

import java.io.File;
import java.io.IOException;

public class Converter {

    private final static String baseFile = "user.json";

    public static void toJSON(User user) throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        mapper.writeValue(new File(baseFile), user);
        System.out.println("json created!");
    }

    public static User toJavaObject() throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        return mapper.readValue(new File(baseFile), User.class);
    }

}

В результате выполнения появится файл user.json:

{"Number":1,"First Name":"Alex","Phone Number":"+38000000001"}

И после конвертации обратно в POJO мы получим объект с полями:

User[ID:1, Name: Alex, Phone: +38000000001]

Возникнут вопросы, выслушаю вас в комментариях.

ПОХОЖИЕ ПУБЛИКАЦИИ

    None Found

90284
21/08/2013

16 комментариев к статье "Конвертация Java объектов в JSON"

Добавить комментарий

Сайт использует cookie-файлы для того, чтобы вам было удобнее им пользоваться. Для продолжения работы с сайтом, вам необходимо принять использование cookie-файлов.

Я ознакомлен(а)