Я пытаюсь десериализации JSON, используя fasterxml Джексоном, одно из полей в Json является строкой, но мне нужно, чтобы прочитать то же самое в массив байтов PFB Боб и главный классНе удалось расшифровать VALUE_STRING, как base64
public class Serialization implements Serializable{
private static final long serialVersionUID = 5894318390213780082L;
private String name = null;
@JsonDeserialize(using = StringtoByteArray.class)
private byte[] pass = null;
//getter setter
}
public class StringtoByteArray extends JsonDeserializer<byte []> {
@Override
public byte[] deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
throws IOException, JsonProcessingException {
return (jsonParser.getBinaryValue());
}
}
public class App
{
public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException {
Serialization sr = new Serialization();
ObjectMapper mapper = new ObjectMapper();
sr = mapper.readValue(new File("D:\\check.json"), Serialization.class);
System.out.println("sr values ::" +sr.toString());
mapper.writeValue(new File("c:\\user.json"), sr);
}
}
Мой JSON
{
"name": "AD",
"pass": "pp"
}
в момент получения Deserialize исключение в потоке "основной" com.fasterxml.jackson.databind.JsonMappingException: Не удалось декодировать VALUE_STRING, как base64 (MIME-NO-символы перевода строки): Нелегальная символ '' '(код 0x22) в содержимом base64Просьба предложить
Вместо всегда указывать кодовую страницу 'GetBytes (StandardCharsets.UTF_8)'. –