Я использую Джексона для десериализации (анализа) простого события JSON с кодом, подобным следующему:
JsonParser parser = ... // Initialized via JsonFactory for simple JSON String
ObjectMapper mapper = new ObjectMapper();
HashMap<String, Object> attributes = mapper.readValue(parser,
new TypeReference<HashMap<String, Object>>() {});
Код работает, как и ожидалось, для нескольких случаев, с которыми я его проверял, кроме случаев, когда JSONinput содержит нулевое значение Unicode (\ u0000).
В частности, если в приведенной выше строке JSON есть пара ключ-значение, содержащая Unicode, например,
{
... (start K-V pairs),
"UniKey":"\u0000...",
... (end K-V pairs)
}
, анализатор правильно читает все«запуск пар KV» (которые не содержат нулевого Unicode) в атрибутах HashMap, но немедленно останавливает десериализацию при обнаружении нулевого значения Unicode «UniKey», возвращая пустое значение и никогда не анализируя остальную часть строки JSON (то есть конецKV-пары ").
Есть ли способ сказать Джексону, чтобы он игнорировал нулевой Unicode при десериализации?