-1

任意の Groovy マップ/リストを、Groovy が提供する構成スタイルの DSL 構文に変換するにはどうすればよいですか?

例:

def config = [
    'test': 'lalala',
    'nestedObject': [
        foo1: 'foo1 val',
        foo2: 'foo2 val',
        nested2: [
            anInt: 5,
            anArray: ['a', 'b', 'c'],
            anIntArray: [1, 2, 3]
        ]
    ]
]

次のようなものに:

test = 'lalala'
nestedObject {
    foo1 = 'foo1 val'
    foo2 = 'foo2 val'
    nested2 {
        anInt = 5
        anArray = ['a', 'b', 'c']
        anIntArray = [1, 2, 3]
    }
}

アップデート:

4

2 に答える 2

0

各 Map を ConfigObject に変換し、きれいに印刷するだけです。

import groovy.util.ConfigObject

def config = [
    'test': 'lalala',
    'nestedObject': [
        foo1: 'foo1 val',
        foo2: 'foo2 val',
        nested2: [
            anInt: 5,
            anArray: ['a', 'b', 'c'],
            anIntArray: [1, 2, 3]
        ] as ConfigObject
    ] as ConfigObject
] as ConfigObject

println config.prettyPrint()

すべての功績は次の とおりです。Grails でネストされたマップのみを使用して ConfigObject を作成する方法は?

(Grailsの外でこれを行うことができることを人々に知ってもらいたかったのですが、最初はきれいな印刷がどのように呼び出されるのかわかりませんでした.JsonOutput.prettyPrint()と混同されました)

ありがとう@Steinar

于 2016-09-14T18:21:10.613 に答える