После обновления файла json с помощью groovy данные файла содержат дополнительные фигурные скобки и объект «content»

#json #groovy #jmeter

#json #groovy #jmeter

Вопрос:

Это своего рода данные, которые я получил в своем файле json

 {"globals":{"code":"1111","country_code":"8888","hits":80,"extra_hit":1,"keep_money":true},"time_window":{"from":"2020.12.14 08:40:00","to":"2020.12.14 08:45:00"},"car":{"have":"nope"}}
 

После того, как я прогоню его через этот groovy-код в jmeter:

 import groovy.json.JsonSlurper
import groovy.json.JsonBuilder
import groovy.json.JsonOutput


def jsonSlurper = new JsonSlurper().parse(new File("C:/pathToFile/test.json"))

log.info(jsonSlurper.toString())


jsonSlurper.globals.hits = 70
jsonSlurper.time_window.from = "2020.12.14 08:42:00"
jsonSlurper.time_window.to = "2020.12.14 08:48:00"

def builder = new JsonBuilder(jsonSlurper)

log.info(builder.toString())

def json_str = JsonOutput.toJson(builder)
def json_beauty = JsonOutput.prettyPrint(json_str)


log.info(json_beauty.toString())

File file = new File("C:/pathToFile/test.json")
file.write(json_beauty)
 

файл json обновляется, но все данные переносятся в новый объект «content»

 "content": {
        "globals": {
            "code":"1111",
            "country_code": "8888",
            "hits": 70,
            "extra_hit": 1,
            "keep_money": true
        },
        "time_window": {
            "from": "2020.12.14 08:42:00",
            "to": "2020.12.14 08:48:00"
        },
        "car": {
            "have": "nope"
        }
    }
}
 

Как избежать этого переноса в объект «content»?

Ответ №1:

Копирование и вставка кода из Интернета, не имея ни малейшего представления о том, что он делает, — не лучший способ продолжить, в какой-то момент вы в конечном итоге запустите патч Бармина

Я ожидаю, что вы ищете функцию JsonBuilder.toPrettyString(), так что в основном все, что идет после этой строки:

 def builder = new JsonBuilder(jsonSlurper)
 

может быть заменен на:

 new File("C:/pathToFile/test.json").text = builder.toPrettyString()
 

Дополнительная информация:

Комментарии:

1. 🙂 много поиска, много нового, но иногда приятно получить подсказку от кого-то более опытного. спасибо, ваш ответ сработал по мере необходимости 🙂