Jackson deserialize JsonIdentityReference (alwaysAsId = true)

前端 未结 1 650
忘了有多久
忘了有多久 2021-01-01 18:54

Following up on this question: Question here

@JsonIdentityReference(alwaysAsId = true) and @JsonIdentityInfo(generator = ObjectIdGenerators.Prope

相关标签:
1条回答
  • 2021-01-01 19:13

    Instead of a custom deserializer, you can use a simple setter deserializer:

    public class Container {
        @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
        @JsonIdentityReference(alwaysAsId = true)
        private Foo foo;
    
        public Foo getFoo() {
            return foo;
        }
        public Container setFoo(Foo foo) {
            this.foo = foo;
            return this;
        }
        @JsonProperty("foo")
        public void setFoo(String id) {
            foo = new Foo().setId(id);
        }
    }
    

    Example string of {"foo":"id1"} is serialized properly with this method in Jackson 2.5.2

    0 讨论(0)
提交回复
热议问题