JAX-RS, Map<String,String> JSON sans la surcharge?

Je suis à l'aide de JAX-RS pour créer des services web restful en Java. Je suis arriver à beaucoup de frais généraux dans le JSON.

Classe de données:

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

    private Map<String,String> data;

    Test() {}

    public Test(Map<String,String> data) {
        this.data = data;
    }

    public Map<String, String> getData() {
        return data;
    }
}

Service:

@GET
@Path("/test")
@Produces("application/json; charset=UTF-8;")
public Test test() {
   Map<String,String> map = new HashMap<String,String>();
   map.put("foo", "bar");
   map.put("bingo", "bongo");
   return new Test(map);
}

Produit:

{"data":{"entry":[{"key":"foo","value":"bar"},{"key":"bingo","value":"bongo"}]}}

Je tiens à produire:

{"data":{"foo":"bar","bingo":"bongo"}}

Quelle est la façon la plus simple d'arriver à cela? Je suis libre de redifine ma classe de données mais je ne peux pas savoir à l'avance les clés ou la taille de la carte.

Compte tenu de la surcharge de la requête web, êtes-vous sûr que le format json vaut la peine de l'optimisation? (En d'autres termes, le profilage de votre application vous conduire à croire que le format de données json est un problème de performance?) Souviens-toi... l'optimisation Prématurée est la racine de tous les maux dans la programmation

OriginalL'auteur | 2009-12-14