什么是代表我的Yaml文件的更好方法

时间:2019-01-27 14:10:17

标签: java yaml

是否有更好的方法来表示下面的yaml文件,因此更易于阅读和使用?当前,我需要为每个豆创建一个bean,我想知道是否有更好的方法来表示我的yaml文件,这样我就不需要这么大的结构

product:
  productId:
    instructions:
    exclude: false
    exists: true
    equals: false
    isSimple: true
  alternateId:
    instructions:
      exclude: true
      exists: false
      equals: false
      isSimple: true

productTotalPrice:
  priceType:
    exclude: false
    exists: true
    equals: true
    isSimple: true
  recurringChargePeriod:
    exclude: false
    exists: true
    equals: true
    isSimple: true
  taxRate:
    exclude: false
    exists: true
    equals: true
    isSimple: true
  price:
    exclude: false
    exists: true
    equals: true
    isSimple: false
  standalonePrice:
    exclude: false
    exists: true
    equals: true
    isSimple: false
  finalPrice:
    exclude: false
    exists: true
    equals: true
    isSimple: false


standalonePrice:
  taxIncludedAmount:
    exclude: false
    exists: true
    equals: true
    isSimple: false
  dutyFreeAmount:
    exclude: false
    exists: true
    equals: true
    isSimple: false

3 个答案:

答案 0 :(得分:1)

我建议使用:

public static JsonNode myMap;

myMap = mapper.readTree(new File("....yaml"));

答案 1 :(得分:0)

显然,杰克逊可以解析YAML。

查看此处:

https://dzone.com/articles/read-yaml-in-java-with-jackson

答案 2 :(得分:-2)

一些背景(和观点)
对于懒惰的人,YAML是JSON。 因为这, 您的YAML结构基本上是树结构。 您可以使用Jackson解析JSON的方式与使用Jackson解析JSON的方式相同; 创建一个POJO结构。

以下是您的YAML的“产品”部分的一些示例类:

public class TopClass
{
  private Product product;
}

public class Product
{
  private Blammy alternateId;
  private Blammy productId;
}

public class Blammy
{
  private boolean exclude;
  private boolean exists;
  private boolean equals;
  private boolean isSimple;
}

比喻地, 一百万个可用的资源描述了如何使用Jackson解析JSON (也可能是YAML)。 这是一个现有的StackOverflow问题的链接,该问题讨论了 Parsing YAML with Jackson