Ich versuche, einen benutzerdefinierten Deserializer mit StdDeserializer<T>
zu implementieren. In meiner deserialize(JsonParser, DeserializationContext)
Methode versuche ich JsonParser
zu verwenden, um eine Multimap
zu lesen, da die JSON-Zeichenfolge { "toMap": { "a": "b", "a": "c" } }
ist.Jackson JsonParser readValueAs Multimap
Angenommen, ich bin an einem Punkt, wo der Feldname "toMap"
ist, habe ich versucht, dies zu tun: Multimap<String, Object> rawConditions = jsonParser.readValuesAs(new TypeReference<LinkedListMultimap<String, Object>>() {});
, aber es führt zu einem Kompilierungsfehler. Es heißt, sie haben inkompatible Typen - ein Multimap<String, Object>
ist erforderlich, aber es findet einen Iterator<Object>
.
Können Sie genauer sein und schreiben, was in Ihrem 'Multimap' sein sollte, nachdem Sie Ihre Beispieleingabe analysiert haben? – Xaerxess
Ich habe eine Antwort hinzugefügt. Aber wenn Sie auf der Serialisierungsseite Kontrolle haben, wäre es besser, {"a": ["b", "c"]} als {"a": "b", "a": "c" } – Joel