【问题标题】:JSON nested property as not nestedJSON 嵌套属性未嵌套
【发布时间】:2015-05-27 13:48:28
【问题描述】:

如果我有这种情况可能吗

class DefaultFruit {
  taste: String
}

class Fruit {

  fruit: DefaultFruit
  color: String
}

提供一些注解@JSON注解来转换对象结构

到:

{
color: "",
taste: "",
}

【问题讨论】:

    标签: java json rest jackson


    【解决方案1】:

    是的,您可以使用 @JsonUnwrapped 注释 fruit 属性/字段,并且 DefaultFruit 属性将与 Fruit 属性一起被序列化/反序列化。

    public static class DefaultFruit {
        public String taste;
    }
    
    public static class Fruit {
        @JsonUnwrapped
        public DefaultFruit fruit;
        public String color;
    }
    
    @Test
    public void serialize_unwrapped() throws Exception {
        Fruit fruit = new Fruit();
        fruit.color = "red";
        fruit.fruit = new DefaultFruit();
        fruit.fruit.taste = "sweet";
        assertThat(mapper.writeValueAsString(fruit),
                   equalTo("{\"taste\":\"sweet\",\"color\":\"red\"}"));
    }
    

    【讨论】:

    • True 我试过了,但没有任何效果,尽管我使用了另一个 Json 注释,如 @JsonFormat 并且它们可以工作。嗯……
    • 这很奇怪,我刚刚尝试过,它似乎对我有用,至少对于序列化而言。
    • 也许我的配置/杰克逊版本有误。无论如何,这是一个很好的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多