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

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу заставить Джексон сериализовать константы перечисления в более низких значениях, если перечисление только для

Сообщение Anonymous »

Я спрашиваю об этом из -за одной ошибки в блюдах Swagger UI. Подробнее об этом здесь .
Здесь маленький mre:

Код: Выделить всё

package com.example.dynamicgateway.misc;

import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@Getter
class SomeClass {
SomeEnum someEnumProperty = SomeEnum.INSTANCE_ONE;

enum SomeEnum {
INSTANCE_ONE, INSTANCE_TWO;
}
}
< /code>
package com.example.dynamicgateway.misc;

import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
import org.junit.jupiter.api.Test;

public class GenericTest {
@Test
@SneakyThrows
void test() {
ObjectMapper objectMapper = new ObjectMapper();
SomeClass someClass = new SomeClass();
String serializedSomeClass = objectMapper.writeValueAsString(someClass);
System.out.println(serializedSomeClass);
}
}
< /code>
{"someEnumProperty":"INSTANCE_ONE"}
< /code>
Now, let's imagine I need the enum to be serialized into instance_one
вместо. Если у меня есть доступ к Someclass , я мог бы сделать это:

Код: Выделить всё

@NoArgsConstructor
@Getter
class SomeClass {
SomeEnum someEnumProperty = SomeEnum.INSTANCE_ONE;

enum SomeEnum {
INSTANCE_ONE, INSTANCE_TWO;

@Override
@JsonValue // this is the key
public String toString() {
return name().toLowerCase();
}
}
}
< /code>
{"someEnumProperty":"instance_one"}
< /code>
But what if I don't have such a write access to SomeClass
? Может, я могу каким -то образом настроить свой объект mapermapper , не так ли?


Подробнее здесь: https://stackoverflow.com/questions/779 ... f-the-enum
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»