gpt4 book ai didi

java - 如何使用 map 将 json 列表包装到对象

转载 作者:行者123 更新时间:2023-11-30 10:19:06 24 4
gpt4 key购买 nike

<分区>

我尝试在没有 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;
}
}

但它不起作用。你能帮帮我吗?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com