jaxb - como un elemento porque le falta una anotación @xmlrootelement
jaxb solo elemento en matriz (2)
Me enfrentaba a un problema similar y encontré una solución simple. Marks @JsonSerialize en lugar de @XmlRootElement ha funcionado para mí.
@JsonSerialize
public class MyClass {
List<String> myTags;
public List<String> getMyTags() {
return myTags;
}
}
Estoy usando JAXB / Jersey (1.3) para convertir java a json en una API REST. La clase de java que estoy regresando es como:
public class MyClass {
List<String> myTags;
public List<String> getMyTags() {
return myTags;
}
}
Mi problema es que si solo hay un único elemento en la lista myTags , los datos se convierten a json como un objeto de cadena, no como una matriz de cadenas. Es decir, me sale:
{
"myTags": "myString"
}
Lo que quiero es:
{
"myTags": ["myString"]
}
Alguien sabe lo que pasa?
Según los comentarios de Luciano, el problema radica en el hecho de que Jersey no estaba utilizando Jackson como el convertidor JSON predeterminado. Intenté excluir a Jettison de la dependencia de pom, pero aún así no resolvió el problema. Encontré una respuesta para decirle explícitamente a Jersey que usara a Jackson aquí:
¿Cómo puedo personalizar la serialización de una lista de objetos JAXB a JSON?