Java 如何将响应解码为列表?
我收到以下答复:Java 如何将响应解码为列表?,java,java-11,Java,Java 11,我收到以下答复: [{"id":1,"someField":"someValue"}] 这是我的要求: private HttpRequest doRequest(String body, URI uri) { return HttpRequest.newBuilder() .POST(HttpRequest.BodyPublishers.ofString(body)) .uri
[{"id":1,"someField":"someValue"}]
这是我的要求:
private HttpRequest doRequest(String body, URI uri) {
return HttpRequest.newBuilder()
.POST(HttpRequest.BodyPublishers.ofString(body))
.uri(uri)
.headers(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
.build();
}
我试着这么做,但没有成功:
protected ClassToDecode createResponse(HttpResponse<HttpBodyCodec> response) {
return response.body().decodeAs(ClassOfResponse.class);
}
这样做,字段中不会填充响应。
我无法解码我收到的列表,我应该怎么做?您的类
ClassToDecode
无法工作的原因是因为它试图在json对象中找到键响应
,如下所示:
{"responses":[{"id":1,"someField":"someValue"}]}
做你想做的事情最简单的方法是:
public class ClassToDecode extends ArrayList<ClassResponse> {
}
公共类ClassToDecode扩展了ArrayList{
}
这应该是我们的工作,并帮助您解码
关于。您的类
ClassToDecode
不起作用的原因是,它试图在json对象中找到键响应
,如下所示:
{"responses":[{"id":1,"someField":"someValue"}]}
做你想做的事情最简单的方法是:
public class ClassToDecode extends ArrayList<ClassResponse> {
}
公共类ClassToDecode扩展了ArrayList{
}
这应该是我们的工作,并帮助您解码
问候。您试图做的事情并没有真正起作用,因为:
- Jackson看到的JSON类型是一个列表/数组
- Jackson没有看到可以反序列化的列表。只有一件事有一个清单。这是一个至关重要的区别
newclasstodecode(反序列化djsonlist)
。如果您只需要一个对象进行反序列化,这可能是您最好的选择
您试图做的事情并没有真正起作用,因为:
- Jackson看到的JSON类型是一个列表/数组
- Jackson没有看到可以反序列化的列表。只有一件事有一个清单。这是一个至关重要的区别
newclasstodecode(反序列化djsonlist)
。如果您只需要一个对象进行反序列化,这可能是您最好的选择
上述答案是正确的。但是,我用这种方式解决了这个问题:
protected List<ClassToDecode> createResponse(HttpResponse<HttpBodyCodec> response) {
return response.body().decodeAs(new TypeRef<>() { });
}
protectedlist-createResponse(HttpResponse-response){
返回response.body().decodeAs(新的TypeRef(){});
}
这只是另一种解决方法。以上这些答案是正确的。但是,我用这种方式解决了这个问题:
protected List<ClassToDecode> createResponse(HttpResponse<HttpBodyCodec> response) {
return response.body().decodeAs(new TypeRef<>() { });
}
protectedlist-createResponse(HttpResponse-response){
返回response.body().decodeAs(新的TypeRef(){});
}
这是另一种解决方法。您遇到了什么异常?我没有异常,但我的字段没有填写may help的3.2节您遇到了什么异常?我没有异常,但我的字段没有填写may help的3.2节