Tôi đã viết một thư viện có tên là Squiggly Filter, chọn trường dựa trên một tập con của cú pháp API biểu đồ Facebook. Ví dụ, để chọn mã vùng của trường địa chỉ của đối tượng người dùng, bạn sẽ sử dụng chuỗi truy vấn ?fields=address{zipCode}
. Một trong những ưu điểm của Squiggly Filter là miễn là bạn có quyền truy cập vào ObjectMapper để render json, bạn không phải sửa đổi mã của bất kỳ phương thức điều khiển nào của mình.
Giả sử, bạn đang sử dụng API servlet, bạn có thể làm như sau:
1) Đăng ký một bộ lọc
<filter>
<filter-name>squigglyFilter</filter-name>
<filter-class>com.github.bohnman.squiggly.web.SquigglyRequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>squigglyFilter</filter-name>
<url-pattern>/**</url-pattern>
</filter-mapping>
2) Khởi tạo ObjectMapper
Squiggly.init(objectMapper, new RequestSquigglyContextProvider());
3) Bạn hiện có thể lọc json của bạn
curl https://yourhost/path/to/endpoint?fields=field1,field2{nested1,nested2}
Thông tin thêm về Bộ lọc Squiggly có sẵn trên github.
Nguồn
2016-10-17 01:20:46
bạn có đang cố gắng loại trừ các thuộc tính trong thời gian chạy không? Ví dụ bạn có một bản đồ, và muốn loại trừ một số thuộc tính bên trong nó? – eugen
có, nhưng phải là loại trừ dấu chấm như 'order.id' ' order.content.items' – Roman