2016-05-24 2 views
0

Как сообщить Jackson ObjectMapper «НЕ сбежать» при разборе объекта Json? Другими словами, верните строку «как есть». Например, мой JSON как это:ObjectMapper: не упускать

{"field_1":"xyz","field_2":"ABWKJ\/m3ERpLr"}

После запуска через ObjectMapper, field2 значение: "ABWKJ/m3ERpLr", но я хочу "ABWKJ \/m3ERpLr" потому что мне нужно, чтобы расшифровать его & дешифрование не выполняется, потому что «\» обратная косая черта исчезла.

Я попробовал следующее:

MyClass jsonMessage = mapper.readValue(input, MyClass);

, а также:

MyClass jsonMessage = mapper.readerFor(MyClass).readValue(input.getBytes());

Но обе версии изменить строку в некотором роде. Я хочу вернуть его «КАК ЕСТЬ». Должен ли я использовать другой класс?

+0

Забавно, но это была проблема редактирования, которую я исправил. Реальный вопрос остается в силе. – DilTeam

+0

У меня нет времени попробовать это сам, но я думаю, что это может вам помочь: [CharacterEscapes] (http://wiki.fasterxml.com/CharacterEscapes). Эта [статья в блоге] (http://www.cowtowncoder.com/blog/archives/2012/08/entry_476.html) немного говорит о ее использовании. Я думаю, что идея состоит в том, чтобы определить CharacterEscapes, который исключает '\\'. – DavidS

+0

Примечание: Когда я анализирую использование '@Consumes (APPLICATION_JSON)', он работает в моем WebService. Потребности из пакета «javax.ws.rs», поэтому я знаю, что это можно сделать. Я просто не знаю, какой код работает, когда я использую «@Consumes». – DilTeam

ответ

2

Я знаю, что это немного поздно, но у меня была аналогичная проблема.

Решение, которое я нашел, использует JsonRawValue для печати необработанных значений полей.

public class MyClass{ 

    private String myField1; 
    private String myField2; 

    @JsonRawValue 
    public String getMyField1() { 
     return myField1; 
    } 

    @JsonRawValue 
    public String getMyField2() { 
     return myField2; 
    } 
} 

Обратите внимание, что по какой-то причине, если вы установите один атрибут как JsonRawValue, вам нужно добавить аннотации для других атрибутов, а также.

Я не уверен на 100%, если это лучшее решение проблемы, но оно работает, сообщите мне, если вы найдете лучшее решение.

Смежные вопросы