Можно ли добавить перечисление в аннотированный класс Джексона? - PullRequest
0 голосов
/ 24 сентября 2018

Я добавил перечисление в класс, и класс помечен аннотациями Джексона.Я не хочу, чтобы этот enum учитывался при сериализации или десериализации.Нужно ли добавлять какие-либо специальные теги, чтобы игнорировать перечисление, как мы делаем @JsonIgnore для методов или переменных?

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

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({ "name", "license", "description" })
public class Car {

    @JsonProperty("name")
    private String name;
    @JsonProperty("license")
    private String license;
    @JsonProperty("description")
    private String description;

    @JsonProperty("name")
    public String getName() {
        return name;
    }

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

    @JsonProperty("license")
    public String getLicense() {
        return license;
    }

    @JsonProperty("license")
    public void setLicense(String license) {
        this.license = license;
    }

    @JsonProperty("description")
    public String getDescription() {
        return description;
    }

    @JsonProperty("description")
    public void setDescription(String description) {
        this.description = description;
    }

    @JsonIgnore
    public Type getType() {
        if(this.description.contains("electric")) {
            return Type.ELECTRIC;
        }else if(this.description.contains("diesel")) {
            return Type.DIESEL;
        }else {
            return Type.UNKNOWN;
        }
    }

    public enum Type {
        ELECTRIC, DIESEL, GASOLINE, HYDROGEN, BIOFUEL, UNKNOWN
    }
}

Вот некоторый код для использования этого класса.Работает нормально.

public class EnumJsonTester {

    public static void main(String [] args) throws Exception {
        String json = "{\r\n" + 
                "  \"name\": \"Tesla Model S\",\r\n" + 
                "  \"license\": \"1234\",\r\n" + 
                "  \"description\": \"electric powered vehicle.\"\r\n" + 
                "}";
        Car tesla = Utils.jsonToObject(json, Car.class);
        System.out.println("My Car: " + tesla.getType());
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...