#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. 🙂 много поиска, много нового, но иногда приятно получить подсказку от кого-то более опытного. спасибо, ваш ответ сработал по мере необходимости 🙂