Аннотация Джексона для десериализации строки с разделителями в список - PullRequest
0 голосов
/ 07 августа 2020

У меня есть строка, разделенная точкой с запятой

value1; value2; value3; etc..

Я использую Jackson ObjectMapper для десериализации ответа json в POJO, но у меня возникают проблемы с выяснением, как сообщить Джексону, что он должен разделите это строковое свойство на ';'

Поддерживается ли эта функция Джексоном?

Надеясь на что-то вроде

public class POJO {
    @JsonFormat(shape = JsonFormat.Shape.ARRAY, delimitOn = ";")
    private List<String> category;
}

Я также попробовал свой собственный десериализатор, основанный на этом ответ но Джексон пожаловался на невозможность преобразовать String в List - может, я сделал это неправильно?

public class DelimitedStringDeserializer extends StdDeserializer<List<String>> {

    protected DelimitedStringDeserializer() {
        super(List.class);
    }

    @Override
    public List<String> deserialize(org.codehaus.jackson.JsonParser jp, org.codehaus.jackson.map.DeserializationContext ctxt) throws IOException, org.codehaus.jackson.JsonProcessingException {
        return Arrays.asList(jp.getText().split(";"));
    }
}
...