gpt4 book ai didi

java - 解码 JSON,其中标签是值

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

我有一个格式如下的 JSON 文件:

{
"Cubs": {
"city": "Chicago",
"league": "National",
"division": "Central"
},
"Cardinals": {
"city": "St. Louis",
"league": "National",
"division": "Central"
}
}

我想从解析中得到的是 Map<String,TeamInfo>其中键是团队名称。

我正在尝试使用 Jackson 来解码这一点 - 团队信息的结构定义得非常好,但标签是团队的名称。我无法控制输入格式,这就是我们使用的格式。

我尝试这样解析它:

public static class TeamInfo {
private String city;
private String league;
private String division;

public TeamInfo() {
}

public String getCity() {
return city;
}

public void setCity(String city) {
this.city = city;
}

public String getLeague() {
return league;
}

public void setLeague(String league) {
this.league = league;
}

public String getDivision() {
return division;
}

public void setDivision(String division) {
this.division = division;
}
}

public Map<String, TeamInfo> parseTeamInfo(String inputFile) {
Map<String, TeamInfo> teamInfo = null;
try {
teamInfo = m_objectMapper.readValue(inputFile, Map.class);
} catch (IOException e) {
e.printStackTrace();
}
return teamInfo;
}

它解析得很好,但生成的对象是 map 的 map ,而不是 TeamInfo 的 map 。

result

感觉很近,但同时又很遥远。对尝试的事情有什么想法吗?

最佳答案

认为这应该适合您:

public Map<String, TeamInfo> parseTeamInfo(String inputFile) {
Map<String, TeamInfo> teamInfo = null;
try {
TypeReference<HashMap<String,TeamInfo>> typeRef
= new TypeReference<HashMap<String,TeamInfo>>() {};

HashMap<String,TeamInfo> o = mapper.readValue(inputFile, typeRef);
} catch (IOException e) {
e.printStackTrace();
}
return teamInfo;
}

关于java - 解码 JSON,其中标签是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31952710/

24 4 0