我想将 YAML 对象的属性读入 Map,而无需提前知道 Map 键是什么。
我的班级:
DialogData_Constructor = {
name = "", id = "", has_blocked = false, blocked_by = false, messages = { }, time_stamps = { },
New = function()
local tab = {}
for i, v in pairs(DialogData_Constructor) do
tab[i] = v
end
return tab
end,
AddNewMessage = function( message, time_stamp )
table.insert ( .messages, message ) -- how do I insert new data into this table?
table.insert ( .time_stamps, time_stamp)
end
}
我想要的是用两个明显的条目填充我的 Java 地图。但是当我运行这个测试时,我得到一个 UnrecognizedPropertyException:
final static String mapExample =
"abc: 1\n" +
"def: 20\n";
@Data
static class MapTestClass {
Map<String, Integer> answers;
}
@Test
public void mapTest() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
MapTestClass mapTestClass = mapper.readValue(mapExample, MapTestClass.class);
}
有没有简单的方法可以做到这一点?我想避免使用 ObjectMapper.readTree(),因为我确实希望映射器将数据填充到一个定义良好的类中(这个例子摘自一个更复杂的结构)。