Esto se relaciona con una pregunta anterior que pedí aquí anteriormenteEl uso de enumeraciones al analizar JSON con GSON
Estoy tratando de analizar el mismo JSON, pero ahora he cambiado mis clases un poco .
{
"lower": 20,
"upper": 40,
"delimiter": " ",
"scope": ["${title}"]
}
Mi clase ahora se ve así:
public class TruncateElement {
private int lower;
private int upper;
private String delimiter;
private List<AttributeScope> 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;
}
}
Este código genera una excepción,
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
La excepción es comprensible, porque de acuerdo con la solución a mi pregunta anterior, GSON es esperando que los objetos Enum sean realmente creados como
${title}("${title}"),
${description}("${description}");
Pero como esto es sintácticamente imposible, ¿cuáles son las soluciones recomendadas, las soluciones?
Muchas gracias. Esto funcionó. –
¡Funciona! ¡¡Gracias!! –