如何使用 Java 解析 TOML 文档
How to parse TOML document with Java
在我的 Java 应用程序中,我从 REST 服务响应中获取了一个 TOML 文档作为字符串,我研究了如何解析它并转换为 Java 对象。
理想情况下,我想使用一些现有的映射器库进行反序列化,例如 Jackson 或 Gson 用于 JSON 对象。 Java 生态系统中有任何选项吗?
Java 中有几个库可以处理 TOML 文件,例如 mwanji/toml4j and tomlj/tomlj。
toml4j
看起来维护得更好,并且能够将 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");
在我的 Java 应用程序中,我从 REST 服务响应中获取了一个 TOML 文档作为字符串,我研究了如何解析它并转换为 Java 对象。
理想情况下,我想使用一些现有的映射器库进行反序列化,例如 Jackson 或 Gson 用于 JSON 对象。 Java 生态系统中有任何选项吗?
Java 中有几个库可以处理 TOML 文件,例如 mwanji/toml4j and tomlj/tomlj。
toml4j
看起来维护得更好,并且能够将 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");