gpt4 book ai didi

java - 解析 JSON 并转换为对象列表

转载 作者:行者123 更新时间:2023-12-02 10:04:20 24 4
gpt4 key购买 nike

我从 API 调用收到了一个 json 响应,示例响应如下

{
"meta": {
"code": "200"
},
"data": [
{
"Id": 44,
"Name": "Malgudi ABC"
},
{
"Id": 45,
"Name": "Malgudi, DEF"
}
]
}

我正在尝试从中创建对象列表,我为此编写的代码是

private static List<TPDetails> getListOfTpDetails(ResponseEntity<?> responseEntity){
ObjectMapper objectMapper = new ObjectMapper();
List<TPDetails> tpDetailsList = objectMapper.convertValue(responseEntity.getBody().getClass(), new TypeReference<TPDetails>(){});
return tpDetailsList;
}

TPDetails 对象是这样的

public class TPDetails {
int Id;
String Name;
}

我使用的代码导致

java.lang.IllegalArgumentException: Unrecognized field "meta" (class com.sbo.abc.model.TPDetails), not marked as ignorable (2 known properties: "Id", "Name"])
at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: com.sbo.abc.model.TPDetails["meta"])

我想转换列表中的上述 JSON 响应

List<TPDetails> abc = [
{"Id": 44, "Name": "Malgudi ABC"},
{"Id": 45,"Name": "Malgudi DEF"}
]

任何帮助将非常感激。提前致谢

最佳答案

再创建 2 个类,例如

public class Temp {
Meta meta;
List<TPDetails> data;
}

public class Meta {
String code;
}

现在将此 json 转换为 Temp 类。

Temp temp = objectMapper.convertValue(responseEntity.getBody().getClass(), new TypeReference<Temp>(){});

更新:

确保 responseEntity.getBody() 返回您上面提到的确切的 Json 字符串。

Temp temp = objectMapper.readValue(responseEntity.getBody(), new TypeReference<Temp>(){});

关于java - 解析 JSON 并转换为对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55415382/

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