【问题标题】:Convert in java one json to another with different field在java中将一个json转换为另一个具有不同字段的json
【发布时间】:2017-07-02 13:53:59
【问题描述】:

例如我有下一个 JSON:

{"name":"Joe"}

表示为Name.java实体:

public class Name
{
   @JsonProperty("name")
   public String name;
}

我想在解组其余响应期间将此 json 转换为另一个。我要转换的那个是这样的:

public class Surname 
{
   @JsonProperty("surname");
   public String surname;
}

我不想在整个类上使用@JsonDeserializer,实际上@JsonDeserializer on 方法将不起作用,因为属性具有不同的名称,所以我要如何使用一些@JsonCreator 将第一个实体转换为第二个实体或者是什么?谢谢。

【问题讨论】:

    标签: java json deserialization


    【解决方案1】:

    你可以使用,

    ObjectMapper mapper = new ObjectMapper();
    Name name = mapper....// unmarshalling and object mapping
    
    JsonNode node = mapper.valueToTree(name);
    
    // copy the value of name and remove the key, add a new key with same value
    
    String n = node.get("name");
    node.remove("name");
    node.put("surname", n);
    

    编辑:

    有注解可以试试

    public class name {
    String name;
       @JsonProperty("name")
        public String getName() {
          return name;
        }
    
        @JsonProperty("surname")
        public void setSurname(String surname) {
          this.name = surname;
        }
    }
    

    【讨论】:

    • 好吧,我可以,但是您的示例-在课堂上使用@JsonDeserialize,对吗?这不是我要找的,无论如何谢谢!
    • 在哪里使用 JsonDeserialize?
    • 在 REST 响应之后,您必须使用 objectMapper 对其进行解组,对吧?忽略那部分,我也评论过。
    • 但是我希望我的 JSON 对象在没有任何额外代码的情况下构建,只使用注释,例如我想说映射器你必须通过设置一些注释将这个值放入这个变量中 @ JsonProperty
    猜你喜欢
    • 2017-03-31
    • 1970-01-01
    • 2020-11-17
    • 2017-09-09
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多