Since you are using default typing, this is how things work -- why would you not expect type information?
Perhaps you could share your object model and explain why you think typing should not affect contents the way it does. -+ Tatu +- ps. In future when asking questions about "why does X happen" it is useful to include information about your settings -- at least non-default ones. Default typing is not one of default settings and while commonly used it is probably not enabled by majority of users. On Fri, Aug 11, 2017 at 5:51 AM, Grigoriy Marakov <marakovgrigo...@gmail.com > wrote: > Hello everyone! I have a problem with serialization via Jackson. > When i do JsonNode smth = readValueToTree(obj) I get information about > class type (e.g. java.Math.BigInteger, java.lang.ArrayList). This problem > pop up for entities contains Map<String, Object> without any serializer. > Also in entity which is not full filled. E.g. I have class ContactMethod > which contains several fields. If all information is present then problem > goes away. But if filled only one field with id (type bigInteger) then i > catch class type info: > Expected: > > "contactMethods": [ > "@type": "PhoneNumber", > "id": "9148293419813662646", > > Actual: > > "contactMethods": ["java.util.ArrayList", > "@type": "PhoneNumber", > "id": "9148293419813662646" > > Another example (with map serialization): > My class have chars (Map<String, Object>). Expected, that when I'll > serialize it I'll get: > > "chars": { "char": [ 1 ] }, > > but actual I get: > > "chars": {"char": ["java.math.BigInteger", 1]} > > Anyone knows why it happens? Thanks > > > I got the answer like: > > From symptoms it looks like you have enabled "default typing" (there are > multiple methods in ObjectMapper to do that), which forces inclusion of > type information similar to what happens when you use @JsonTypeInfo > annotation. > You will want to disable this setting, or use explicit @JsonTypeInfo(use > = Id.NONE) to disable polymorphic handling for specific field(s). > > > But, I have enabled "default typing" and @jsontypeinfo(use = Id.CLASS), I > need it in the other reasons. > > This problem appears strangely: > > [image: problem] > > Birthday and contactMethods are located under contacts. > But if contactMethods is located in the first level like contacts - all is > ok > > [image: problem2] > > -- > 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. > For more options, visit https://groups.google.com/d/optout. > -- 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. For more options, visit https://groups.google.com/d/optout.