Java 无法将yaml字符串转换为键为“的映射”;否";在爪哇
当我试图将yaml字符串转换为Map时,我得到了密钥更改。Java 无法将yaml字符串转换为键为“的映射”;否";在爪哇,java,rest,yaml,Java,Rest,Yaml,当我试图将yaml字符串转换为Map时,我得到了密钥更改。 YAML文件:- --- HK: isp: Airtel: AirtelChennal www.enemalta.com: default: defaultEma user1: chennal1 studiodefault: hkDefaultchennal country: DK: denmarkChennal NO: chennal2 Java代码:- Yaml ya
YAML文件:-
---
HK:
isp:
Airtel: AirtelChennal
www.enemalta.com:
default: defaultEma
user1: chennal1
studiodefault: hkDefaultchennal
country:
DK: denmarkChennal
NO: chennal2
Java代码:-
Yaml yaml= new Yaml();
Map<String,Object> map= (Map<String, Object>) yaml.load(yamlString);
在上面的输出中,false被替换为“NO”,但我需要“NO”
预期产出:-
{HK={isp={Airtel=AirtelChennal}, www.enemalta.com={default=defaultEma, user1=chennal1}, studiodefault=hkDefaultchennal, country={DK=denmarkChennal, NO=chennal2}}}
根据这篇文章: 为了使用字符串“yes”和“no”作为键,您需要换行 引用他们的话
您应该将解析器更新为符合最新标准(2009年的1.2!)的解析器,它似乎符合。将是和否解释为布尔语。应为
true
或false
您可以通过使用单引号或双引号将
NO
标量作为显式字符串来获得相同的效果。这真的很有效,谢谢@JP Moresmau,除此之外,任何字符串都可以用于类似的“是”、“否”
{HK={isp={Airtel=AirtelChennal}, www.enemalta.com={default=defaultEma, user1=chennal1}, studiodefault=hkDefaultchennal, country={DK=denmarkChennal, NO=chennal2}}}