2013-06-18 2 views
3

Je cours un échantillon (que je ne trouve plus) de Blaise Doughans blog sur Glassfish 3 en utilisant le service EclipseLink 2.5 MOXy for JAXB.Echec de la suppression d'une seule liste d'éléments

@XmlRootElement 
@XmlAccessorType(XmlAccessType.FIELD) 
public class Company { 

    @XmlElementWrapper(name="employees") 
    @XmlElement(name = "employee", type=Employee.class) 
    private List<Employee> employees; 
} 

@XmlAccessorType(XmlAccessType.FIELD) 
public class Employee { 
    private String id; 
    private String name; 
} 

J'ai ajouté quelques annotations aux classes, pour produire la structure JSON souhaitée:

{ 
    "employees": [ 
    { 
     "id": "1", 
     "name": "Jane Doe", 
     "report": [] 
    } 
    ] 
} 

Quand je tente de désorganiser ce JSON il échoue malheureusement, le retour d'un objet avec une liste d'employés vide.
Ajout d'un autre élément à la liste JSON OU suppression des travaux @XmlElementWrapper.
Mais je veux que l'élément clé soit nommé employees, donc je dois utiliser l'annotation wrapper, ou pas?

Edit:

public class MyApplication extends Application { 

    @Override 
    public Set<Class<?>> getClasses() { 
     HashSet<Class<?>> set = new HashSet<Class<?>>(2); 
     set.add(MOXyJsonProvider.class); 
     set.add(Index.class); 
     return set; 
    } 

    @Override 
    public Set<Object> getSingletons() { 
     MOXyJsonProvider moxyJsonProvider = new MOXyJsonProvider(); 

     moxyJsonProvider.setAttributePrefix("@"); 
     moxyJsonProvider.setFormattedOutput(true); 
     moxyJsonProvider.setIncludeRoot(false); 
     moxyJsonProvider.setMarshalEmptyCollections(true); 
     moxyJsonProvider.setValueWrapper("$"); 
     moxyJsonProvider.setWrapperAsArrayName(true); 

     HashSet<Object> set = new HashSet<Object>(1); 
     set.add(moxyJsonProvider); 
     return set; 
    } 

} 

Répondre

4

J'ai confirmé la question que vous voyez et que vous avez ouvert le bug suivant:

MISE À JOUR

Le correctif de ce problème a été vérifié dans les flux EclipseLink 2.5.1 et 2.6.0. Vous pouvez obtenir le correctif dans le correspondant nightly builds à partir du lien suivant à partir du 19 Juin, 2013:

+0

Merci. Donc, je pourrais saisir aujourd'hui la construction nocturne pour obtenir la version fixe? – Imperative

+1

@Imperative - Je vais mettre le correctif dans aujourd'hui et demain, vous serez en mesure de saisir la construction du 19 Juin soir. Il est normalement disponible le matin, heure de l'Est. –

Questions connexes