使用@JsonRootName

时间:2019-02-11 18:01:12

标签: java json-deserialization jackson2

当有多个节点与JsonRootName中提供的值处于同一级别时,反序列化将不起作用

注意: 包装器的配置如下:

objectMapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);

班级:

@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)

@JsonRootName(value = "response")
public class UserProfile {
  String name;
  String link;
}

输入JSON(有效):

{
  "response": {
    "name": "User one:",
    "link": "Some Link"
  }
}

输入JSON(无效)

{
  "response": {
    "name": "User one:",
    "link": "Some Link"
  }, 
  "apiVersion" : 1.0
}

为字段responseapiVersion添加包装器将解决此问题,这将使使用标签JsonRootName的目的无法实现

如果在根级别有多个字段(不使用另一个包装类),如何反序列化?

0 个答案:

没有答案