Hi Vince, If I'm understanding the implementation of mapper.convertVaue(), I think it doesn't matter whether it's on serialization or deserialization since convertValue() does both.
To illustrate, let's say I have a pojo with one field and the anySetter/anyGetter: @JsonProperty("onlyField") private String onlyField; @JsonAnyGetter public Map<String, Object> getAdditionalProperties() { return this.additionalProperties; } @JsonAnySetter public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } If I deserialize {"onlyField": "someValue", "additional": "anotherValue"}, I end up with a pojo with object.getOnlyField() == "someValue") and object.getAdditionalProperties().get("additional") == "anotherValue") Now when I call mapper.convertValue(object, MyPojo.class): if I drop on serialization, I end up with a serialized object of {"onlyField": "someValue"} if I drop on deserialize, I start with a serialized object of {"onlyField": "someValue", "additional": "anotherValue"} but end up with a pojo with an empty map in object.getAditionalProperties(). If I can do it at either step, I'd love to know how, but either one will solve my current problem. Here's a gist with a sample, which currently fails: https://gist.github.com/hancockks/02509e5d06b0f1d95b1e3e6c4a23a9f1 On Saturday, August 12, 2023 at 8:31:54 AM UTC-4 Joo Hyuk Kim (김주혁) wrote: > Hello Ken, > > To make things clear, a few questions. > > - Meaning of "to strip any additional properties before writing an > object". Are you looking to exclude `additionalProperties` only during > serialization, but include in deserialization? > - Is the primary intent to generate a JSON output that does not > include `additionalProperties`, or is there another objective? > - Could you also provide a simple, reproducible example using just > Jackson and Java? > > Thanks, > > Joo Hyuk, Kim (Vince) > On Saturday, August 12, 2023 at 1:31:13 AM UTC+9 Ken Hancock wrote: > >> >> I have a pojo that serializes any additional properties into >> >> @JsonAnyGetter >> public Map<String, Object> getAdditionalProperties() { >> return this.additionalProperties; >> } >> >> @JsonAnySetter >> public void setAdditionalProperty(String name, Object value) { >> this.additionalProperties.put(name, value); >> } >> >> However, I have an odd use case where I want to be able to strip any >> additional properties before writing an object. I'm fairly sure with all of >> Jackson's configuration settings that I should be able to configure a >> mapper such that mapper.convertValue(myPojo, MyPojo.class) should be able >> to serialize and deserialize back again, dropping the additionalProperties >> when it serializes? The pojo is deeply nested and auto-generated, so I'd >> prefer not to hard-code having to just clear additionalProperties at each >> sub-object. >> >> Thanks, >> >> Ken >> > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/jackson-user/b1312629-c09c-4e00-868b-df4eb61be842n%40googlegroups.com.