简体   繁体   English

如何使用 Java 解析 TOML 文档

[英]How to parse TOML document with Java

In my Java app I get a TOML document from REST service response as String and I look how to parse it and convert to Java objects.在我的 Java 应用程序中,我从 REST 服务响应中获得了一个 TOML 文档作为字符串,我看看如何解析它并转换为 Java 对象。

Ideally I'd like to use some existing mapper library for deserialization, something like Jackson or Gson for JSON objects.理想情况下,我想使用一些现有的映射器库进行反序列化,例如 Jackson 或 Gson 对象用于 JSON 对象。 Are there any options in Java ecosystem for that? Java 生态系统中是否有任何选项?

There are several libraries to work with TOML files in Java, such as mwanji/toml4j and tomlj/tomlj . Java 中有几个库可以处理 TOML 文件,例如mwanji/toml4jtomlj/tomlj The toml4j looks more maintained and has the ability to map the TOML file to your POJO classes, so it should perfectly match your needs. toml4j看起来维护得更好,并且能够将 TOML 文件 map 到您的 POJO 类中,因此它应该完全符合您的需求。

From its documentation :从其文档中

Toml#to(Class<T>) maps a Toml instance to the given class. Toml#to(Class<T>)将 Toml 实例映射到给定的 class。

TOML file example: TOML 文件示例:

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

POJO classes example: POJO 类示例:

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

How to map TOML file to POJO classes:如何将 map TOML 文件转换为 POJO 类:

 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");

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

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