java - 映射中的符号和特殊字符通过 YML 文件作为键
问题描述
是否可以在通过 application.yml 映射:
;
/
,
.
的 Java 中的映射键中存储字符?
我正在尝试通过 application.yml 文件中的映射存储 URI 和与它们关联的值,但是由于它是一个键,它不会保存任何特殊字符
http://localhost:8080变成 httplocalhost8080
有什么办法可以保存那些丢失的角色吗?
~~编辑~~ 我已经尝试了转义字符、双引号和单引号,但是一旦它们在哈希图中,它们就会被忽略。
yml 文件中的属性具有以下结构:
uri-example-config:
keyToValueMap:
http://localhost:8080 : String1
http://exmaple.com: String2
http://moreURIs.com: String2
然后我的配置是:
@Configuration
@ConfigurationProperties(prefix = "uri-example-config")
@EnableConfigurationProperties
@Getter
@Setter
public class URIProperties {
private Map<String, String> keyToValueMap = new HashMap<>();
}
~~~~编辑2~~~~
是的,我可以轻松地 map.put(" http://localhost:8080 "...) 并且字符串按预期保留。通过带有配置和属性的yml 文件执行此操作会导致此问题。
解决方案
Java HashMap 接受任何对象(字符串是对象)作为键! 此外,HashMap 不会写入/更改您的字符串。
我认为您的问题来自加载您的 .yml
如果在双引号中,Yaml 接受特殊字符作为键。
- "http://localhost:8080"
检查您的序列化器/反序列化器
编辑项目的github 上有解释
你应该用括号括住你的字符串
- '[http://localhost:8080]'
推荐阅读
- python - load_model 是否加载优化器状态?
- r - 即使很少有测试失败,如何在 R 中获得包覆盖率
- vba - 在 PowerPoint 中使用 VBA 删除一张幻灯片上的所有图像
- mysql - 如何将 node.js 连接到我的 SQL 数据库?
- excel - 将 Google Maps XML 中的某些值解析为 Excel 单元格
- scala - 将数据集元素保存到具有指定文件路径的文件中
- python - 如何实时更新 django 模板?
- python - 使用 Colab GPU 时出错,而 CPU 则没有
- java - Hibernate createNativeQuery 在添加实体映射时返回错误结果
- sql - 在 psql 表的特定行插入一条记录