如何将Groovy映射转换为key =“value”字符串?

时间:2016-01-12 17:56:08

标签: groovy

我需要获取map并将其转换为字符串,其中键/值对分为key =“value”。 我可以做到以下几点,这有效,但是有一种“更加时髦”的方式来实现这一目标吗?

void "test map to string"() {
given: "a map"
Map fields = [class: 'blue', type:'sphere', size: 'large' ]

when:
StringBuilder stringBuilder = new StringBuilder()
fields.each() { attr ->
    stringBuilder.append(attr.key)
    stringBuilder.append("=")
    stringBuilder.append('"')
    stringBuilder.append(attr.value)
    stringBuilder.append('" ')
}

then: 'key/value pairs separated into key="value"'
'class="blue" type="sphere" size="large" ' == stringBuilder.toString()
}

2 个答案:

答案 0 :(得分:11)

您可以map.collect使用所需的格式:

Map fields = [class: 'blue', type:'sphere', size: 'large' ]

toKeyValue = {
    it.collect { /$it.key="$it.value"/ } join " "
}

assert toKeyValue(fields) == 'class="blue" type="sphere" size="large"'

答案 1 :(得分:2)

您可以使用groovy的map.toMapString()方法。

Map fields = [class: 'blue', type:'sphere', size: 'large' ]
fields.toMapString()