Tôi đang sử dụng JAX-RS để tạo các dịch vụ web an toàn trong Java. Tôi đang nhận được nhiều chi phí trong JSON được tạo ra.JAX-RS, Bản đồ <String, String> đến JSON mà không có phí trên không?
lớp dữ liệu:
@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;
}
}
dịch vụ:
@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);
}
Tạo:
{"data":{"entry":[{"key":"foo","value":"bar"},{"key":"bingo","value":"bongo"}]}}
Tôi muốn nó để sản xuất:
{"data":{"foo":"bar","bingo":"bongo"}}
Cách đơn giản nhất để đạt được điều này là gì? Tôi được tự do xác định lại lớp dữ liệu của mình nhưng tôi không thể biết trước các khóa hoặc kích thước của bản đồ.
Với chi phí của yêu cầu web, bạn có chắc định dạng json đáng được tối ưu hóa không? (Nói cách khác, đã làm hồ sơ ứng dụng của bạn dẫn bạn tin rằng định dạng của dữ liệu json là một vấn đề hiệu suất?) Hãy nhớ ... Tối ưu hóa sớm là gốc rễ của tất cả điều ác trong lập trình –