我们可以使用JsonBuilder为以下JSON创建JSON吗?

时间:2018-01-15 09:55:07

标签: json groovy

我想使用JsonBuilder创建以下JSON。

"isOut": false,
"baleRun": {
    "incData": true,
    "appendCricket": [{
        "min": 10,
        "max": 32,
        "price": "10"
    }]
}

我尝试过以下代码来创建它: -

import groovy.json.*

def builder = new JsonBuilder()
def root = builder.baleRun{                
    incData true
    builder.appendCricket [
    {
        min 10
        max 32      
        price "10000"
     }
    ]                     
 }

获得以下错误: -

groovy.lang.MissingPropertyException: No such property: appendCricket for 
class: groovy.json.JsonBuilder error.

知道怎么制作这个吗?

2 个答案:

答案 0 :(得分:6)

最简单的方法是为所需的数据构建Map,然后将其传递给构造函数中的构建器:

import groovy.json.*

def data = [
    isOut: false,
    baleRun: [
        incData: true,
        appendCricket: [
            [min: 10, max: 32, price: '10']
        ]
    ]
]
def json = new JsonBuilder(data).toString()

答案 1 :(得分:1)

使用地图很容易创建它,就像@tim_yates建议的那样。

当然,也可以创建开始的方式。应该注意数组,参见:

def json = new groovy.json.JsonBuilder()
json {
    isOut false
    baleRun {
      incData true
      appendCricket( [
      {
          min 10
          max 32      
          price "10000"
       }
      ])
    }
 }

println json.toPrettyString()

快速尝试相同的在线 demo