springboot—YAML文件中读取Map集合并带有转义字符(问题记录)
{"id":"10080sssssssss"}这一段就是map集合的key,我们拿着这个key去匹配value,如果我们还是用之前那种编写配置文件中的map集合与读取配置文件中的map集合是不可以的,因为我们现在map集合的key和value中添加逗号,双引号等。{"id":"1022222226","name":"zhangjingqi"},这一大段就是map集合的value。比如,{"id":
如下图的请求参数,用户可以自定义“data”字段的内容,然后根据data的内容去配置文件中读取对应的结果,用户可以自己在配置文件中配置(nacos)
比如下面的请求,{"id":"10080sssssssss"}这一段就是map集合的key,我们拿着这个key去匹配value,如果我们还是用之前那种编写配置文件中的map集合与读取配置文件中的map集合是不可以的,因为我们现在map集合的key和value中添加逗号,双引号等
yaml文件内容:
从下面的代码很容易看出 userDefinedResult是一个map集合,只不过这个map集合的key和value都比我们之前见过的要复杂
比如,{"id":"10086","name":"zhangjingqi"},这一大段就是map集合的key
{"id":"1022222226","name":"zhangjingqi"},这一大段就是map集合的value
userdefinedyaml:
path:
userDefinedResult: {
'[{"id":"10086","name":"zhangjingqi"}]': '{"id":"1022222226","name":"zhangjingqi"}',
'[{"id":"10080","name":"ceshiyixia"}]':'{"des":"用户自定义"}',
'[{"id":"10080"}]':'{"des":"用sssssssssss户自定义"}'
}
配置文件
读取yaml文件的内容
@Data
@Component
@ConfigurationProperties(prefix = "userdefinedyaml.path")
public class UserDefineMapConfig {
private HashMap<String, String> userDefinedResult;
}
测试类
@Autowired
ObjectMapper objectMapper ; //转json工具
@Autowired
UserDefineMapConfig userDefineMapConfig; //自定义读取配置文件的配置类
@Test
void contextLoads() throws JsonProcessingException {
//从配置文件中获取用户自定义的map集合
HashMap<String,String> hashMap = userDefineMapConfig.getUserDefinedResult();
System.out.println(hashMap);
// {"id":"10086","name":"zhangjingqi"} 模拟前端传输过来的data数据的json格式
String key = "{\"id\":\"10086\",\"name\":\"zhangjingqi\"}";
System.out.println(key);
// 从集合中进行获取
System.out.println(hashMap.get(key));
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)