让我们说你的Json由一堆自由形式的对组成
"config": {
"k1": "abc",
"k2": "xyz"
},
规则
其中一些值是字符串,其他值是数字。我在想HashMap
public class Outer {
private Config config = new Config();
public Config getConfig() {
return config;
}
public void setConfig(Config config) {
this.config = config;
}
public class Config {
private Map<String, String> map = new HashMap<>();
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
}
}
使用测试时,我看到getConfig()
返回非空值。但是当我到getMap()
时,我得到null
请帮助我理解我在这里缺少的东西。
答案 0 :(得分:3)
你应该只使用:
public class Outer {
private Map<String, String> config = new HashMap<>();
public Map<String, String> getConfig() {
return config;
}
public void setConfig(Map<String, String> config) {
this.config = config;
}
}
在您编写的类模型中,您描述这样的JSON:
"config": {
"map": {
"k1": "abc",
"k2": "xyz"
}
},
但正如你所看到的,那不是你想要的......
您必须意识到JSON中的字段config
不是包含名为map
的字段的对象,该字段代表Map
...但字段{{1} } 代表自己为config
!