yaml文件中Map集合的key、value的坑

本文探讨了在Spring Boot应用中使用YAML配置文件时,如何正确解析包含数字键及特殊字符开头值的Map集合。通过在键或值上添加单引号,可以避免解析错误,确保配置项被正确读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

yaml文件配置Map集合常规写法:

a:
  b:
    key1: val1
    key2: val2

获取方式:

@ConfigurationProperties(prefix = "a")
@Component
public class Config {

   ……

    private Map<String, String> b;

    ……

}

如果yaml文件中Map对应的key 为纯数字时,我们往往获取不到 该key, 另如果valu以特殊字符开始,例如:#123等。此时,我们都无法正确获取相应的 key 和 value.

 

解决方法:只需在特殊 配置参数上  增加'' 即可。

a:
  b:
    '001': '#123&'
    '002': '#2222'

 

转载于:https://www.cnblogs.com/Jode-blog/p/11000669.html

### 如何在 YAML 文件中定义和配置映射(Map类型 YAML 支持多种数据结构,其中映射(map)是最常用的一种。映射由键值对组成,每个键后面跟一个冒号 `:` 和对应的值[^1]。 #### 基本语法 映射类型的定义非常简单,只需要按照如下格式书写: ```yaml key: value ``` 如果值是一个字符串,则可以根据情况选择是否使用单引号包裹。对于特殊字符或包含空格的字符串,建议使用单引号[^3]。 #### 复杂嵌套映射 当需要表示更复杂的结构时,可以通过缩进来创建嵌套映射。注意每一层之间的缩进应该保持一致,并且仅能使用空格而非制表符[^2]。 ```yaml person: name: 'Alice' age: 30 address: street: 'No.1 First Street' city: 'Beijing' country: 'China' ``` #### 使用列表作为映射的值 除了基本的数据类型外,还可以将列表作为映射中的值。这使得能够构建更为复杂的数据模型。 ```yaml languages: programming: - 'Python' - 'PowerShell' ``` #### 注入到 Spring Boot 应用程序 在某些框架下,比如Spring Boot,可以直接从 YAML 配置文件中注入这些映射对象。需要注意的是,在这种情况下,`@Value`注解有特定的要求。 ```java // 正确的方式读取List<String> @Value("#{'${microservice.valueyaml.listStrValue}'.split(',')}") private List<String> listStrValue; // 正确的方式读取Map<String, String> @Value("#{${microservice.valueyaml.mapStrValue}}") private Map<String, String> mapStrValue; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值