如何使用 Java 解析 TOML 文档

How to parse TOML document with Java

在我的 Java 应用程序中,我从 REST 服务响应中获取了一个 TOML 文档作为字符串,我研究了如何解析它并转换为 Java 对象。

理想情况下,我想使用一些现有的映射器库进行反序列化,例如 Jackson 或 Gson 用于 JSON 对象。 Java 生态系统中有任何选项吗?

Java 中有几个库可以处理 TOML 文件,例如 mwanji/toml4j and tomlj/tomljtoml4j 看起来维护得更好,并且能够将 TOML 文件映射到您的 POJO 类,因此它应该完全符合您的需求。

来自其documentation

Toml#to(Class<T>) maps a Toml instance to the given class.

TOML file example:

name = "Mwanji Ezana"

[address]
  street = "123 A Street"
  city = "AnyVille"
  
[contacts]
  "email address" = "me@example.com"

POJO classes example:

class Address {
  String street;
  String city;
}

class User {
  String name;
  Address address;
  Map<String, Object> contacts;
}

How to map TOML file to POJO classes:

User user = new Toml().read(tomlFile).to(User.class);

assert user.name.equals("Mwanji Ezana");
assert user.address.street.equals("123 A Street");
assert user.contacts.get("\"email address\"").equals("me@example.com");