#java #json #enums #jackson #jackson-databind
#java #json #перечисления #джексон #jackson-привязка данных
Вопрос:
Вот мое перечисление:
public enum BundleStatus {
NEW,
SUCCESS,
CANCEL,
FAIL,
WAIT_CANCEL,
PARTIAL_SUCCESS,
PROCESSING,
NO_FUNDS,
HOLD_PAY,
WAIT_PAY;
public static final Set<BundleStatus> NO_ACTIVE_STATUSES = new HashSet<>(Arrays.asList(CANCEL, FAIL));
public static final Set<BundleStatus> SUCCESS_STATUSES = new HashSet<>(Arrays.asList(SUCCESS, PARTIAL_SUCCESS));
private static final Set<BundleStatus> FAIL_CANCEL_STATUSES = new HashSet<>(Arrays.asList(FAIL, WAIT_CANCEL, CANCEL));
public static final Set<BundleStatus> STATUS_BUNDLE_FOR_EXECUTE_MAIN = new HashSet<>(
Arrays.asList(SUCCESS, PARTIAL_SUCCESS, WAIT_CANCEL)
);
public static final Set<BundleStatus> STATUS_BUNDLE_FOR_EXECUTE_DEPENDENT = new HashSet<>(
Arrays.asList(SUCCESS, PARTIAL_SUCCESS, WAIT_CANCEL, CANCEL, FAIL)
);
public static final Set<BundleStatus> STATUS_BUNDLE_FOR_GET_PRIMARY = new HashSet<>(
Arrays.asList(PROCESSING, WAIT_CANCEL, SUCCESS, PARTIAL_SUCCESS)
);
public static final Map<String, BundleStatus> EVENT_TYPE_MAPPING = ImmutableMap.of(
"noFunds", NO_FUNDS,
"holdPay", HOLD_PAY
);
public static final Set<BundleStatus> WAITING_PAY_BUNDLE_STATUSES = new HashSet<>(
Arrays.asList(WAIT_PAY, HOLD_PAY, NO_FUNDS));
public boolean isFailCancel() {
return FAIL_CANCEL_STATUSES.contains(this);
}
public boolean isFailCreate() {
return NO_ACTIVE_STATUSES.contains(this);
}
public boolean isSuccessStatus() {
return SUCCESS_STATUSES.contains(this);
}
public boolean isHasActivePayProcess() {
return WAITING_PAY_BUNDLE_STATUSES.contains(this);
}
}
Когда я пытаюсь сериализовать его в объект JSON, я получаю объект с map, где key — это имя поля (этот объект является полем другого класса), а value — массив со всеми логическими геттерами:
{
"clientId":"siebel_id_one",
"code":"premium",
"newStatus":{"failCreate":false,"failCancel":false,"hasActivePayProcess":false,"successStatus":true}
}
Я хочу, чтобы поле «newStatus» отображалось только как "newStatus": "SUCCESS"
. Как это исправить?
Комментарии:
1. Вы можете легко настроить, как вы хотите, чтобы ваши результаты json использовали аннотации Джексона