微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数组 – YAML多行字符串:键与数组值

这是非常具体但让我难过.我们在解析时处理嵌套键常规数组几乎相同 – 有时在需要时添加额外信息,如下所示:
---
Entry 1:
    - lorem:
        true
    - ipsum
    - dolor
Entry 2:
    - lorem
    - ipsum:
        true
    - dolor
...

…这给了我这个JSON:

{
  "Entry 2": [
    "lorem",{
      "ipsum": true
    },"dolor"
  ],"Entry 1": [
    {
      "lorem": true
    },"ipsum","dolor"
  ]
}

一切都很酷很好.为内容输入多行字符串会变得更加混乱,但仍然可以正常工作(继续粘贴到Online YAML Parser或其他编译器以供参考):

---
#works:

Test:
  - lorem
  - ipsum
  - dolor
? |-
    multiline
    Test
:
  - lorem
  - ipsum:
      true
  - dolor
...

更深入,我的第二级数组中的多行字符串也可以正常工作,正如规范所期望的那样:

---
#works:
Test:
    - |-
        multiline
        lorem
    - ipsum
    - dolor
? |-
    multiline
    Test
:
    - lorem
    - ipsum:
        true
    - dolor
...

Wohoo!但是只要我在同一级别混合多行键和多行数组字符串,我的设置就会中断:

---
#breaks:
Test:
    - |-
        multiline
        lorem
    ? |- 
        multiline
        ipsum
    : 
        true
? |-
    multiline
    Test
:
    - lorem
    - ipsum:
        true
    - dolor
...

如何解决

解决方法

如果在同一级别混合键和数组项,则YAML会中断.您不需要多行字符串:
- 1
? 2
: 3

这应该解析什么?数组?映射?但是,这有效:

- 1
- ? 2
  : 3

所以你可以像这样修复你的YAML:

---
Test:
    - |-
        multiline
        lorem
    - ? |- 
          multiline
          ipsum
      : 
        true
? |-
    multiline
    Test
:
    - lorem
    - ipsum:
        true
    - dolor
...

原文地址:https://www.jb51.cc/js/150477.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐