Jackson JSONSerializer: записать значение в другом контексте (из корня) - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть такой объект Java:

@Data
@SuppressWarnings("unused")
@NoArgsConstructor
public class MetadataValue<V> {

    private @Nullable V value;

    private @Nullable Integer maximum;

}

@Data
@AllArgsConstructor
public class MyClass {

    @JsonSerialize(using = MetadataValueSerializer.class)
    MetadataValue<Integer> integerValue;

    MySubClass mySubClass;

}
@Data
@AllArgsConstructor
public class MySubClass {

    @JsonSerialize(using = MetadataValueSerializer.class)
    MetadataValue<Integer> integerValue;

}

И я хочу сериализовать его таким образом, чтобы он выглядел примерно так:

{
    "integerValue": 1,
    "mySubClass": {
        "integerValue": 2
    },
    "_metadata" : {
        "integerValue": {
            "maximum": 10
        },
        "mySubClass": {
            "integerValue": {
                "maximum": 10
            }
        } 
    }
}

В настоящее время я понятия не имею, как ее решить, потому что я пытаюсь использовать метод: getOutputContext() из JsonGenerator. Но есть только методы чтения для навигации по JSONObject.

Есть идеи, как мне разрешить этот вариант использования?

Спасибо

...