java - 如何使用对象映射器动态向类添加属性?
问题描述
我想解析多个 yaml 文件并将它们添加到表格上。我有解析 yaml 的代码,但我正在尝试找出一种将属性添加到类的方法(如果不可用)。
下面是我的代码
public void readyml() throws JsonParseException, JsonMappingException, IOException{
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
mapper.findAndRegisterModules();
Order order = mapper.readValue(new File("src/main/resources/orderInput.yaml"), Order.class);
System.out.println("order ::: " + order);
}
上面的代码读取src/main/resources/orderInput.yaml
orderNo: A001
date: 2019-04-17
customerName: Customer, Joe
orderLines:
- item: No. 9 Sprockets
quantity: 12
unitPrice: 1.23
- item: Widget (10mm)
quantity: 4
unitPrice: 3.45
将它们映射到Order
和OrderList
类,并打印值
我的问题是,如果 yaml 中添加了新属性,我希望我的代码能够获取它
你能帮忙吗
解决方案
修改代码以将属性映射到映射,而不是类
public void readyml() throws JsonParseException, JsonMappingException, IOException{
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
mapper.findAndRegisterModules();
Map<String,Object> dynamicProperties = new HashMap<String,Object>();
dynamicProperties = mapper.readValue(new File("src/main/resources/orderInput.yaml"), Map.class);
System.out.println("order ::: " + dynamicProperties);
}
推荐阅读
- javascript - 显示上一个和下一个内容的问题
- node.js - 是否可以检查是否有人打开了某个浏览器链接,如果没有执行某个功能?
- mysql - 如何在mysql中根据出生日期计算年龄并应用条件?
- postgresql - 如果 transaction_id 不是 null 加入 transaction_id 否则加入用户 id - 在同一个加入?
- flutter - 在 Flutter 上添加两列文本
- flutter - 如何在颤动中创建圆角矩形框?
- docker - 防止 .env 文件被复制到 Docker 容器
- azure - Azure IoT Edge 与 Lora 设备的集成
- python - 了解 Python 进程的内存增长(VmRSS 与 gc.get_objects)
- java - 使用 Java 读取图像文件的有效方法