Thank you. I test it. Use `jp.readValueAsTree()` instead of `jp.codecs.readTree`. But the problem still exists. I use version is 2.9.8 (I see the lastest version is 2.9.9. But the vert.x project has using 2.9.8......)
Maybe it's a temp workaround. 在 2019年6月1日星期六 UTC+8上午7:41:25,Tatu Saloranta写道: > > On Fri, May 31, 2019 at 3:29 PM 遗迹 <canpo...@gmail.com <javascript:>> > wrote: > >> Hello, >> >> I create a deserializer for match corret subclass of abstract class. >> >> I register the deserializer for `InputMessageContent`. >> But when I call `jp.getCodec().readTree<JsonNode>(jp)` in >> `deserializer(JsonParser jp, DeserializationContext ctxt)`. >> It return the parent element which contains `InputMessageContent`. >> >> But If I call jp.nextToken() before, it will works. >> >> It's says: >> >> input: >> {"foo": {"a": "value", "b": "something"}} >> >> type define: >> class Foo{ >> InputMessageContent foo; >> } >> >> @JsonDeserialize(using = InputMessageContentDeserializer.class) >> class InputMessageContent{ >> String a; >> String b; >> } >> >> Output: >> jp.getCodes().readTree(jp).toString()=="{"foo": {"a": "value", "b": " >> something"}}" >> //I wish it should be "{"a": "value", "b": "something"}" <--- If I >> call jp.nextToken() before. >> >> >> >> In fact, I'm use Kotlin for this. >> The source code is long: >> https://paste.ubuntu.com/p/X2qSNGSQGp/ >> >> > I agree: it should not be necessary to call `nextToken()` at that point. > > But instead of > > `jp.getCodec().readTree<JsonNode>(jp)` > > I would just call > > `jp.readValueAsTree()` > > Not sure if that makes a difference. Also make sure to use a new version > of `jackson-databind` and `jackson-core`. > > I hope this helps, > > -+ Tatu +- > > > > > > -- You received this message because you are subscribed to the Google Groups "jackson-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to jackson-user+unsubscr...@googlegroups.com. To post to this group, send email to jackson-user@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jackson-user/dfa80411-1cd3-4555-906b-46b449875777%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.