Я пытаюсь преобразовать объект Java в JSON в Tomcat (в настоящее время используется Джексон).Основываясь на полях в запросе RESTful, я хочу сериализовать только эти поля.Я хочу поддерживать запросы для любого подмножества полей, поэтому я хотел бы сделать это во время выполнения (динамически).
Например, предположим, что я хочу поддержать частичную сериализацию для объектов User:
class User {
private final String id;
private final String firstName;
private final String lastName;
public User(String id, String firstName, String lastName) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
}
public String getId() { return id; }
public String getFirstName() { return firstName; }
public String getLastName() { return lastName; }
}
Если я сделаю запрос на:
GET /users/{id}/?fields=firstName,lastName
Я хочу получить что-то вроде {"firstName":"Jack","lastName":"Johnson"}
.
Если я сделаю запрос на:
GET /users/{id}/?fields=firstName
Я хочу получить что-то вроде {"firstName":"Jack"}
.
Джексона JSON View дает возможность определять подмножества логических свойств (вещей, доступных через геттеры или поля) для сериализации.Однако они определяются статически (с использованием аннотаций) и выбираются только динамически (для сериализации).На практике я хочу поддержать запрос любого подмножества полей объекта, чтобы потенциально иметь тысячи представлений JSON (10 полей подразумевают 1023 подмножества!).
Какая библиотека JSON поддерживает частичную сериализацию во время выполнения?