<分区>
我尝试在没有 Spring 或其他框架使用 Gson 或 Codehaus Jackson 库的情况下在纯 java 中创建 api 客户端。 Json 响应有多种类型。像这样:
{
"any_name1": {
"field1": 1,
"field2": 2
},
"any_name2": {
"field1": 3,
"field2": 4
}
...
}
它具有任意名称的对象和相同的字段。 或者这样:
{
"field1":1,
"field2":{
"obj1":{
"field1":1,
"field2":2
}
...
}
}
它应该适用于此调用:
AnyTypeResponse response = apiClient.sendRequest(request, AnyTypeResponse.class);
我发送了我想从客户那里得到的响应类型。 使用第二个 json 示例很清楚。对象有两个字段,其中之一是列表。 但第一个 json 示例是对象列表。例如,我不需要列表,但我需要一个包含列表(或 map )的对象。这意味着我需要将对象列表包装在一个自定义响应对象中。我怎样才能做到这一点? 现在我使用这个方法:
public <T> T execute(Class<T> clazz) throws Exception {
...
// create HttpUrlConnection and send request
...
return objectMapper.readValue(response.toString(), clazz);
// or return gson.fromJson(response.toString(), clazz);
}
public class ListTypeResponse {
private List<AnyObj> objects;
public ListTypeResponse(List<AnyObj> objects) {
this.objects = objects;
}
public List<AnyObj> getObjects() {
return objects;
}
}
但它不起作用。你能帮帮我吗?