我正在调用另一个 api 并获得以下 json 响应
{
"metadata": {},
"data": {
"productid": 102001,
"productname": "p101",
"branddetail": {
"brandid": 3840,
"brandname": "abc",
"brandcode": "x01"
}
}
}如何解开品牌详细信息并将其作为类实体读取,如下所示?
HttpGet httpGet = buildHttpGet("/externalApiURL");
HttpResponse response = getHttpClient().execute(httpGet);
HttpEntity entity = response.getEntity();
if (entity != null && response.getStatusLine().getStatusCode() == HttpStatus.OK.value()) {
ObjectMapper objectMapper = new ObjectMapper();
BrandDetail brandDetail = objectMapper.readValue(entity.getContent(), BrandDetail.class);
}提前致谢
Easily find JSON paths within JSON objects using our intuitive Json Path Finder
30
使用convertvalue(),这里是一个测试。
@data
public class branddetail {
private int brandid;
private string brandname;
private string brandcode;
}
@Test
public void demo() throws Exception {
ObjectMapper mapper = new ObjectMapper();
var data = """
{
"metadata": {},
"data": {
"productId": 102001,
"productName": "P101",
"brandDetail": {
"brandId": 3840,
"brandName": "ABC",
"brandCode": "X01"
}
}
}
""";
JsonNode node = mapper.readTree(data);
JsonNode brandNode = node.get("data").get("brandDetail");
BrandDetail brandDetail = mapper.convertValue(brandNode, BrandDetail.class);
// BrandDetail(brandId=3840, brandName=ABC, brandCode=X01)
System.out.println(brandDetail);
}
以上就是如何将嵌套 json 对象解包为实体的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号