Я создал сервлет, который принимает запрос POST. Полезные данные этого запроса POST содержат объект JSON следующего вида -
{
"subscription": {
"metadata": {
"id": "aA.com",
"subscriptionPref": "Subs",
"category": "cat",
"isSubscribed": true,
"source": "form"
}
}
}
Я создал Java POJO для сопоставления этого объекта JSON с объектом Java -
package components.core.models.subscription;
import java.util.HashMap;
import java.util.Map;
public class SubscriptionPojo {
private Subscription subscription;
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
public Subscription getSubscription() {
return subscription;
}
public void setSubscription(Subscription subscription) {
this.subscription = subscription;
}
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
package components.core.models.subscription;
import java.util.HashMap;
import java.util.Map;
public class Subscription {
private Metadata metadata;
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
public Metadata getMetadata() {
return metadata;
}
public void setMetadata(Metadata metadata) {
this.metadata = metadata;
}
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
package components.core.models.subscription;
import java.util.HashMap;
import java.util.Map;
public class Metadata {
private String id;
private String subscriptionPref;
private String category;
private Boolean isSubscribed;
private String source;
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSubscriptionPref() {
return subscriptionPref;
}
public void setSubscriptionPref(String subscriptionPref) {
this.subscriptionPref = subscriptionPref;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public Boolean getIsSubscribed() {
return isSubscribed;
}
public void setIsSubscribed(Boolean isSubscribed) {
this.isSubscribed = isSubscribed;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
Вот как я сопоставляю json с java объектом -
ObjectMapper mapper = new ObjectMapper();
SubscriptionPojo subscriptionPojo = mapper.readValue(requestJSON.toString(), SubscriptionPojo.class);
Я хотел бы добавить очень базовые c и простые проверки для этих классов POJO. Например, я хотел бы проверить id
по регулярному выражению или проверить source
по набору значений. Как мне это сделать? Есть ли уроки, которым я могу следовать?