J'utilise Jackson désérialiser (parse) d'un simple événement JSON, avec le code comme ceci:Jackson: désérialisation (parsing) null Unicode
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>>() {});
Le code fonctionne comme prévu pour plusieurs cas, je l'ai testé contre , sauf lorsque l'entrée JSON contient la valeur null Unicode (\ u0000). Plus spécifiquement, si la chaîne JSON ci-dessus a une paire clé-valeur qui contient Unicode, par ex.
{
... (start K-V pairs),
"UniKey":"\u0000...",
... (end K-V pairs)
}
l'analyseur lit comme suit correctement les « start paires de KV » (qui ne contiennent pas Unicode null) dans les attributs HashMap mais arrête désérialisation immédiatement en rencontrant la valeur Unicode nulle de « UniKey », retournant une valeur vide et jamais l'analyse syntaxique le reste de la chaîne JSON (c'est-à-dire, les "paires de KV de fin"). Y a-t-il un moyen de dire à Jackson d'ignorer Unicode nul en désérialisation?
Cela semble trier, en effet. – PNS