java - 在groovy中使用snakeyaml序列化hashmap时出现问题

标签 java jenkins serialization groovy yaml

问题是,当我尝试使用 Snakeyaml 序列化数据时,它会出现格式错误,但是当我使用 jsonslurper 执行相同操作时,所有内容都格式完美。

map 是这样的

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"

        ]

    },

最佳答案

使用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

关于java - 在groovy中使用snakeyaml序列化hashmap时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52950411/

相关文章:

c# - 转换成base64会加一个回车符

java - 序列化嵌套对象json jackson

java - 加载自定义 Android View 时出错 : Resources$NotFoundException: Resource ID #0x7f060007 type #0x12 is not valid

java - 通过 java 向 Minecraft 服务器发送命令

java - `MediaStore.MediaColumns.DATA` 已弃用,我应该使用哪一列作为替代

升级后 Jenkins 缺少构建触发器部分

maven - 如何使用带有管道的 Docker 缓存本地 Maven 存储库?

Jenkins 未执行作业(待处理 - 等待下一个执行者)

Java 8 使用过滤器选项在嵌套列表中执行求和运算

c# - 为什么 JsonConverter 忽略 WriteIndented 选项?