当我尝试将yaml字符串转换为Map时,我正在进行关键更改 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);
输出: -
{HK={isp={Airtel=AirtelChennal}, www.enemalta.com={default=defaultEma, user1=chennal1}, studiodefault=hkDefaultchennal, country={DK=denmarkChennal, false=chennal2}}}
在上面的输出false中用&#34; NO&#34;替换,但我需要&#34; NO&#34;原样。
预期产出: -
{HK={isp={Airtel=AirtelChennal}, www.enemalta.com={default=defaultEma, user1=chennal1}, studiodefault=hkDefaultchennal, country={DK=denmarkChennal, NO=chennal2}}}
答案 0 :(得分:3)
根据这篇文章:http://makandracards.com/makandra/24809-yaml-keys-like-yes-or-no-evaluate-to-true-and-false
为了使用字符串'yes'和'no'作为键,你需要换行 他们用引号
答案 1 :(得分:0)
您应该将解析器更新为符合最新标准的解析器(从2009年开始的1.2!),它似乎符合1.1 YAML standard。并将是和否解释为布尔。 In revision 1.2 booleans应为true
或false
。
通过使用单引号或双引号引用NO
标量作为显式字符串,可以获得相同的效果。