繁体   English   中英

通过 YAML 文件处理属性

[英]Handling properties by YAML file

我学习了如何在测试项目中处理写在 yaml 文件中的属性。

我知道这与处理 JSON 个文件非常相似。

我了解到我必须编写一个类/对象组合 model 来镜像 yaml 配置。

我做到了,我不得不说一切都很好,但突然间我遇到了困难。

我的意思是,如果我向 yaml 添加一个新属性,在组合 model 中不会有镜像 object 怎么办?

我想编写一个代码,在我将它添加到 yaml 之后读取该属性,但我不知道该怎么做。

有人有什么建议吗?

如果您正在寻找命名属性,那您就不走运了。 您在 class 中需要它们。但是,您可以改用一些更通用的 collections,并按名称获取属性,假设它们是简单的键/值。

例如,如果您有这样的 YAML:

size: 16
crust: "wheat"
toppings:
  "cheese": "normal"
  "pepperoni": "normal"
  "onion": "normal"
  "mushroom": "extra"

可以有一组固定的配料,如下所示:

public class Pizza
{
  private int size;
  private String crust;
  private Toppings toppings;
}

public class Toppings
{
  private String cheese;
  private String pepperoni;
  private String onion;
  private String mushroom;
}

但实际上,我们都知道每个人都希望他们的比萨饼上有不同的东西。 如果您只为每个人提供相同的比萨饼,那么您将 go 倒闭。 所以,你需要一些更灵活的浇头。 有时他们会在那里,有时他们不会。 所以,你必须使用更灵活的数据结构:

public class Pizza
{
  private int size;
  private String crust;
  private Map<String, String> toppings;
}

大多数序列化程序(例如 Jackson)都知道如何处理 collections ,例如MapList 他们将允许您添加任何您想要的属性,只要它符合集合的形式/类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM