Utilizzo JAX-RS per creare servizi Web riposanti in Java. Sto arrivando a molto overhead nel prodotto JSON.JAX-RS, Map <String, String> to JSON senza l'overhead?
classe di dati:
@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;
}
}
Servizio:
@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);
}
Produce:
{"data":{"entry":[{"key":"foo","value":"bar"},{"key":"bingo","value":"bongo"}]}}
Vorrei di produrre:
{"data":{"foo":"bar","bingo":"bongo"}}
Qual è il modo più semplice per ottenere questo? Sono libero di ridefinire la mia classe di dati, ma non posso sapere in anticipo le chiavi o la dimensione della mappa.
Dato il sovraccarico della richiesta web, sei sicuro che il formato JSON valga la pena di essere ottimizzato? (In altre parole, il profiling della tua applicazione ti ha portato a credere che il formato dei dati JSON fosse un problema di prestazioni?) Ricorda ... L'ottimizzazione prematura è la radice di tutto il male nella programmazione –