首页 > 解决方案 > 如何处理动态生成的 json 名称字段?

问题描述

例如: https ://store.steampowered.com/api/appdetails/?appids=435150&filters=basic

是 435150,其name值为successdata。如果我要求另一场比赛,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”])

标签: javajson

解决方案


如何先将其读取到 Map,然后使用带有successdata属性的 Wrapper 获取值和解析?

看看这个


推荐阅读