java - 如何处理动态生成的 json 名称字段?
问题描述
例如: https ://store.steampowered.com/api/appdetails/?appids=435150&filters=basic
是 435150,其name
值为success
和data
。如果我要求另一场比赛,name
变化。假设 578080。
https://store.steampowered.com/api/appdetails/?appids=578080&filters=basic
public void readJson(String gameID) throws IOException {
String targetURL = String.format(STEAM_API, gameID);
URL url = new URL(targetURL);
InputStreamReader reader = new InputStreamReader(url.openStream());
ObjectMapper mapper = new ObjectMapper();
SteamResponseWrapper wrapper = mapper.readValue(reader, SteamResponseWrapper.class);
System.out.println(wrapper.getSteamResponse().getGame().toString());
}
public class SteamResponseWrapper {
private String gameID;
private SteamResponse steamResponse;
}
public class SteamResponse {
private boolean success;
private Game game;
}
public class Game {
private String name;
private int steam_appid;
}
我收到此错误原因:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“435150”(util.SteamResponseWrapper 类),未标记为可忽略(2 个已知属性:“steamResponse”、“gameID”])
解决方案
如何先将其读取到 Map,然后使用带有success
和data
属性的 Wrapper 获取值和解析?
看看这个。
推荐阅读
- python - 在 Python 中使用 matplotlib 注释二维线图的距离
- javascript - IntelliJ / WebStorm 代码样式选项,用于在单行上保留 JSON 数组
- python - 如何使用python获取在两个整数之间找到的数组中元素的总和
- laravel - 如何将带有文件的 formData(包括文件和字符串数据)从 Vue 发送到 Laravel API
- angular - 如何以角度提供和注入功能?
- android - 从 Android 启用 Amazon Cognito 中的用户 mfa
- node.js - 如何在where子句中查询jsonb值?
- oracle - PL SQL 我的查询说编译成功,但找不到结果
- symfony - Symfony 5 为什么我不能在我的表单事件监听器中使用 FormsEvents::POST_SUBMIT?
- javascript - Firefox 扩展中的 browser.tabs.executeScript 返回值