【YAML】properties转YAML

背景:

项目正在从传统java转型springboot,其中配置项从properties转yaml,各种坑需要解救下。

 

参考:

YAML语法:

https://blog.csdn.net/liebert/article/details/79451732

https://blog.csdn.net/f8152/article/details/79994545?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-2.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-2.nonecase

 

六、字符串

字符串是最常见,也是最复杂的一种数据类型。

字符串默认不使用引号表示。

  1.  
     
  2.  
    str: 这是一行字符串
  3.  
     

转为 JavaScript 如下。

  1.  
     
  2.  
    { str: '这是一行字符串' }
  3.  
     

如果字符串之中包含空格或特殊字符,需要放在引号之中。

  1.  
     
  2.  
    str: '内容: 字符串'
  3.  
     

转为 JavaScript 如下。

  1.  
     
  2.  
    { str: '内容: 字符串' }
  3.  
     

单引号和双引号都可以使用,双引号不会对特殊字符转义。

  1.  
     
  2.  
    s1: '内容\n字符串'
  3.  
    s2: "内容\n字符串"
  4.  
     

转为 JavaScript 如下。

  1.  
     
  2.  
    { s1: '内容\\n字符串', s2: '内容\n字符串' }
  3.  
     

单引号之中如果还有单引号,必须连续使用两个单引号转义。

  1.  
     
  2.  
    str: 'labor''s day'
  3.  
     

转为 JavaScript 如下。

  1.  
     
  2.  
    { str: 'labor\'s day' }
  3.  
     

字符串可以写成多行,从第二行开始,必须有一个单空格缩进。换行符会被转为空格。

  1.  
     
  2.  
    str: 这是一段
  3.  
    多行
  4.  
    字符串
  5.  
     

转为 JavaScript 如下。

  1.  
     
  2.  
    { str: '这是一段 多行 字符串' }
  3.  
     

多行字符串可以使用|保留换行符,也可以使用>折叠换行。

  1.  
     
  2.  
    this: |
  3.  
    Foo
  4.  
    Bar
  5.  
    that: >
  6.  
    Foo
  7.  
    Bar
  8.  
     

转为 JavaScript 代码如下。

  1.  
     
  2.  
    { this: 'Foo\nBar\n', that: 'Foo Bar\n' }
  3.  
     

+表示保留文字块末尾的换行,-表示删除字符串末尾的换行。

  1.  
     
  2.  
    s1: |
  3.  
    Foo
  4.  
     
  5.  
    s2: |+
  6.  
    Foo
  7.  
     
  8.  
     
  9.  
    s3: |-
  10.  
    Foo
  11.  
     

转为 JavaScript 代码如下。

  1.  
     
  2.  
    { s1: 'Foo\n', s2: 'Foo\n\n\n', s3: 'Foo' }
  3.  
     

字符串之中可以插入 HTML 标记。

  1.  
     
  2.  
    message: |
  3.  
     
  4.  
    <p style="color: red">
  5.  
    段落
  6.  
    </p>
  7.  
     

转为 JavaScript 如下。

  1.  
     
  2.  
    { message: '\n<p style="color: red">\n 段落\n</p>\n' }
  3.  
     

七、引用

锚点&和别名*,可以用来引用。

  1.  
     
  2.  
    defaults: &defaults
  3.  
    adapter: postgres
  4.  
    host: localhost
  5.  
     
  6.  
    development:
  7.  
    database: myapp_development
  8.  
    <<: *defaults
  9.  
     
  10.  
    test:
  11.  
    database: myapp_test
  12.  
    <<: *defaults
  13.  
     

等同于下面的代码。

  1.  
     
  2.  
    defaults:
  3.  
    adapter: postgres
  4.  
    host: localhost
  5.  
     
  6.  
    development:
  7.  
    database: myapp_development
  8.  
    adapter: postgres
  9.  
    host: localhost
  10.  
     
  11.  
    test:
  12.  
    database: myapp_test
  13.  
    adapter: postgres
  14.  
    host: localhost
  15.  
     

&用来建立锚点(defaults),<<表示合并到当前数据,*用来引用锚点。

下面是另一个例子。

  1.  
     
  2.  
    - &showell Steve
  3.  
    - Clark
  4.  
    - Brian
  5.  
    - Oren
  6.  
    - *showell
  7.  
     

转为 JavaScript 代码如下。

  1.  
     
  2.  
    [ 'Steve', 'Clark', 'Brian', 'Oren', 'Steve' ]
  3.  
posted @ 2021-04-07 17:44  CathyGao2018  阅读(1675)  评论(0)    收藏  举报