如何在Rest-Assured框架中为嵌套JSON添加值?

如何在Rest-Assured框架中为嵌套JSON添加值?,json,groovy,rest-assured,Json,Groovy,Rest Assured,我有下面的JSON响应块。我正在使用com.jayway.restassured.response.response类从API读取响应 { layouts: { regions: { [ metadata: null, endDate: null, displayName: null, rol

我有下面的JSON响应块。我正在使用
com.jayway.restassured.response.response
类从API读取响应

{
    layouts:
    {
        regions:
        {
            [
                metadata: null, 
                endDate: null, 
                displayName: null, 
                roles: []
            ],  
            [
                metadata: null, 
                endDate: null, 
                displayName: null, 
                roles: []
            ]
        },
    }
}
我需要将以下结构添加到区域数组中:

[
    structure: 100, 
    type: 101, 
    widgets: [], 
    width: 12
]
因此,生成的JSON如下所示:

{
    layouts:
    {
        regions:
        {
            [
                metadata: null, 
                endDate: null, 
                displayName: null, 
                roles: []
            ],
            [
                structure: 100, 
                type: 101, 
                widgets: [], 
                width: 12
            ],
            [
                metadata: null, 
                endDate: null, 
                displayName: null, 
                roles: []                   
            ]
        },
    }
}

最好的方法是什么?当我使用
com.jayway.restassured.response.response
response时,
JSONSlurper
似乎无法解析整个响应。还有其他想法吗?

您是否提供了正确的JSON响应?在正确的JSON中,“区域”应该是一个数组,如下所示:

{
    layouts:
    {
        regions:
        [
            {
                metadata: null, 
                endDate: null, 
                displayName: null, 
                roles: []
            },  
            {
                metadata: null, 
                endDate: null, 
                displayName: null, 
                roles: []
            }
        ],
    }
}
对于
JsonSlurper
,您可以使用LAX类型:

def json = new JsonSlurper(type: JsonParserType.LAX).parseText(text)
JsonBuilder builder = new JsonBuilder()

List regionsList = json.layouts.regions
regionsList << [
        structure: 100,
        type: 101,
        widgets: [],
        width: 12
]

builder.layouts {
    regions(regionsList)
}

println JsonOutput.prettyPrint(builder.toString())
{
    "layouts": {
        "regions": [
            {
                "metadata": null,
                "endDate": null,
                "displayName": null,
                "roles": [

                ]
            },
            {
                "metadata": null,
                "endDate": null,
                "displayName": null,
                "roles": [

                ]
            },
            {
                "structure": 100,
                "type": 101,
                "widgets": [

                ],
                "width": 12
            }
        ]
    }
}