Использование перечислений при синтаксическом анализе JSON с помощью GSON

Это связано с предыдущим вопросом, который я задавал здесь ранее

Разбор JSON с использованием Gson

Я пытаюсь разобрать тот же JSON, но теперь я изменил мои классы немного.

{
    "lower": 20,
    "upper": 40,
    "delimiter": " ",
    "scope": ["${title}"]
}

Мой класс теперь выглядит так:

public class TruncateElement {

   private int lower;
   private int upper;
   private String delimiter;
   private List scope;

   // getters and setters
}


public enum AttributeScope {

    TITLE("${title}"),
    DESCRIPTION("${description}"),

    private String scope;

    AttributeScope(String scope) {
        this.scope = scope;
    }

    public String getScope() {
        return this.scope;
    }
}

Этот код генерирует исключение,

com.google.gson.JsonParseException: The JsonDeserializer EnumTypeAdapter failed to deserialized json object "${title}" given the type class com.amazon.seo.attribute.template.parse.data.AttributeScope
at 

Исключение понятно, потому что в соответствии с решением моего предыдущего вопроса GSON ожидает, что объекты Enum будут на самом деле быть создано как

${title}("${title}"),
${description}("${description}");

Но поскольку это синтаксически невозможно, каковы рекомендуемые решения, обходные пути?

102
задан fawaad 17 December 2017 в 06:26
поделиться