在groovy中使用snakeyaml序列化hashmap问题

时间:2018-10-23 13:32:11

标签: java jenkins serialization groovy yaml

问题是,当我尝试使用snakeyaml序列化数据时,它的格式不正确,但是当我使用jsonslurper进行相同操作时,所有内容均已完美格式化。

地图就是这样

gateway_splunky:[appToken:samplekey14124fggfs], MySpaceCredentials:[credentials:[samplekey352453sdffgsdfs, dasklkldsakadsp32525902j5, j6klj65kj45kkj45h, 3hjhjk3h34kjh34k34]]

序列化后

yamlOutput = new Yaml().dump(map)

等于

gateway_splunky: {appToken: samplekey14124fggfs}

MySpaceCredentials:

  credentials: [samplekey352453sdffgsdfs, dasklkldsakadsp32525902j5,

    j6klj65kj45kkj45h, 3hjhjk3h34kjh34k34]

JSON等于

prettyJson = groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(map))


{

    "gateway_splunky": {

        "appToken": "samplekey14124fggfs"

    },

    "MySpaceCredentials": {

        "credentials": [

            "samplekey352453sdffgsdfs",

            "dasklkldsakadsp32525902j5",

            "j6klj65kj45kkj45h",

            "3hjhjk3h34kjh34k34"

        ]

    },

1 个答案:

答案 0 :(得分:0)

改为使用dumpAsMap()

import org.yaml.snakeyaml.*

Map map = [
    gateway_splunky: [appToken: 'samplekey14124fggfs'],
    MySpaceCredentials: [
        credentials: [
          'samplekey352453sdffgsdfs', 
          'dasklkldsakadsp32525902j5', 
          'j6klj65kj45kkj45h', 
          '3hjhjk3h34kjh34k34'
        ]
    ]
]

new Yaml().dumpAsMap(map)

生成:

gateway_splunky:
  appToken: samplekey14124fggfs
MySpaceCredentials:
  credentials:
  - samplekey352453sdffgsdfs
  - dasklkldsakadsp32525902j5
  - j6klj65kj45kkj45h
  - 3hjhjk3h34kjh34k34