无法将yaml字符串转换为使用键" NO"在java中

时间:2015-06-19 13:25:04

标签: 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 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}}}

2 个答案:

答案 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应为truefalse

通过使用单引号或双引号引用NO标量作为显式字符串,可以获得相同的效果。