yml java集合_YAML集合和结构

本文介绍了YAML中的块集合和映射,包括如何表示序列和键值对。示例展示了球员名单、标量映射到标量以及复杂的映射结构。YAML文档通过三个连字符或短划线分隔,而流样式集合则使用逗号分隔的列表。
摘要由CSDN通过智能技术生成

YAML包括使用缩进范围的块集合。 在这里,每个条目都以一个新行开头。 集合中的块序列表示每个条目带有破折号和空格( - )。 在YAML中,块集合样式不由任何特定指示符表示。 YAML中的块集合可以与其他标量数量区分开来,并且包含其中包含的键值对的标识。

映射是JSON结构中包含的键值的表示。 它经常用于多语言支持系统以及在移动应用程序中创建API。 映射使用键值对表示以及冒号和空格(:)的使用。

示例

考虑一系列标量的例子,例如球员名单如下所示 -

- Mark Joseph

- James Stephen

- Ken Griffey

以下示例显示将标量映射到标量 -

hr: 87

avg: 0.298

rbi: 149

以下示例显示了将标量映射到序列 -

European:

- Boston Red Sox

- Detroit Tigers

- New York Yankees

national:

- New York Mets

- Chicago Cubs

- Atlanta Braves

集合可用于序列映射,如下所示 -

-

name: Mark Joseph

hr: 87

avg: 0.278

-

name: James Stephen

hr: 63

avg: 0.288

对于集合,YAML包含使用显式指示符的流样式,而不是使用缩进来表示空间。集合中的流序列以逗号分隔的列表形式写在方括号中。集合的最佳插图,包括在交响乐等PHP框架中。

[PHP, Perl, Python]

这些集合存储在文档中。YAML中文档的分隔用三个连字符或短划线(---)表示。 文档末尾标有三个点(...)。

YAML中的文档分隔用三个破折号(---)表示,文档的末尾用三个点(...)表示。

文件表示称为结构格式,如下所述 -

# Ranking of 1998 home runs

---

- Mark Joseph

- James Stephen

- Ken Griffey

# Team ranking

---

- Chicago Cubs

- St Louis Cardinals

带有空格组合的问号表示结构中的复杂映射。 在块集合中,用户可以包括带有破折号,冒号和问号的结构。以下示例显示了序列之间的映射 -

- 2001-07-23

? [ New York Yankees,Atlanta Braves ]

: [ 2001-07-02, 2001-08-12, 2001-08-14]

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

Java 中,可以通过使用第三方库 SnakeYAML 来解析和生成 YAML 配置文件。下面是一个示例 YAML 配置文件,其中包含一个集合: ``` # 示例 YAML 配置文件 database: driverClass: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://localhost:3306/mydatabase username: myusername password: mypassword connectionProperties: autoReconnect: true characterEncoding: UTF-8 useUnicode: true ``` 在 Java 中,可以将上述 YAML 配置文件解析为一个 Map 对象,其中包含一个名为 "database" 的键,对应一个包含多个键值对的子 Map。可以使用以下代码来实现: ```java import java.io.InputStream; import java.util.Map; import org.yaml.snakeyaml.Yaml; public class YamlExample { public static void main(String[] args) { // 加载 YAML 文件 InputStream inputStream = YamlExample.class.getClassLoader().getResourceAsStream("config.yml"); // 解析 YAML 文件为 Map 对象 Yaml yaml = new Yaml(); Map<String, Object> data = yaml.load(inputStream); // 获取集合中的某个属性 Map<String, Object> database = (Map<String, Object>) data.get("database"); String driverClass = (String) database.get("driverClass"); String jdbcUrl = (String) database.get("jdbcUrl"); String username = (String) database.get("username"); String password = (String) database.get("password"); Map<String, Object> connectionProperties = (Map<String, Object>) database.get("connectionProperties"); boolean autoReconnect = (boolean) connectionProperties.get("autoReconnect"); String characterEncoding = (String) connectionProperties.get("characterEncoding"); boolean useUnicode = (boolean) connectionProperties.get("useUnicode"); // 打印输出 System.out.println("driverClass: " + driverClass); System.out.println("jdbcUrl: " + jdbcUrl); System.out.println("username: " + username); System.out.println("password: " + password); System.out.println("autoReconnect: " + autoReconnect); System.out.println("characterEncoding: " + characterEncoding); System.out.println("useUnicode: " + useUnicode); } } ``` 上述代码中,首先使用 SnakeYAMLYaml 类加载 YAML 文件并解析为一个 Map 对象。然后,通过获取 Map 对象中的键值对,可以访问集合中的各个属性。最后,将获取的属性打印输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值