Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将ClientResponse实体正确反序列化到POJO列表_Java_Json_Jersey_Jackson - Fatal编程技术网

Java 如何将ClientResponse实体正确反序列化到POJO列表

Java 如何将ClientResponse实体正确反序列化到POJO列表,java,json,jersey,jackson,Java,Json,Jersey,Jackson,我正在尝试将响应实体反序列化到POJO列表中。当我直接这样做时,使用如下的GenericType: private List<UserRole> extractMembersDirectly(final ClientResponse response) { return response.getEntity(new GenericType<List<UserRole>>() {}); } POJO只是: @JsonIgnoreProperties(i

我正在尝试将响应实体反序列化到POJO列表中。当我直接这样做时,使用如下的GenericType:

private List<UserRole> extractMembersDirectly(final ClientResponse response) {
    return response.getEntity(new GenericType<List<UserRole>>() {});
}
POJO只是:

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonSnakeCase
public class UserRole {
    private UUID id;

    public UserRole(@JsonProperty("id") final UUID id) {
        this.id = id;
    }

    public UUID getId() {
        return id;
}

有没有一种方法可以直接从实体反序列化而不首先反序列化为字符串?

您可以尝试在类本身上使用自定义序列化程序

编写序列化程序

   public class UserRoleSerializer extends JsonSerializer<Item> {
      @Override
      public void serialize(UserRole userRole, JsonGenerator jgen, SerializerProvider      provider) throws IOException, JsonProcessingException {
    jgen.writeStartObject();
    jgen.writeStringField("id", userRole.id);
    jgen.writeEndObject();
  }
}
然后只是一个想法,不确定这是否是你想要的

   public class UserRoleSerializer extends JsonSerializer<Item> {
      @Override
      public void serialize(UserRole userRole, JsonGenerator jgen, SerializerProvider      provider) throws IOException, JsonProcessingException {
    jgen.writeStartObject();
    jgen.writeStringField("id", userRole.id);
    jgen.writeEndObject();
  }
}
     @JsonSerialize(using = UserRoleSerializer.class)
     public class UserRole {
         ...
      }