Я пытаюсь динамически строить некоторые json на основе данных, которые я извлекаю из базы данных. До открытия «[» - это «корень», я думаю, вы могли бы сказать. Следующие части с именем и значением являются динамическими и будут основываться на количестве результатов, которые я получаю от db. Я запрашиваю db, и тогда идея состояла в том, чтобы повторить результат, добавив json. Могу ли я использовать jsonBuilder для корневого раздела, а затем цикл с jsonSlurper, чтобы добавить каждый дополнительный раздел? Большинство примеров, которые я видел, касаются корня, а затем однократного «slurp», а затем соединения двух, поэтому не было уверенности в том, что я должен попробовать другой метод для циклирования и добавления нескольких разделов.Динамически строить json используя groovy
Любые советы были бы весьма признательны. Благодарю.
{
"hostname": "$hostname",
"path": "$path",
"extPath": "$extPath",
"appName": "$appName",
"update": {"parameter": [
{
"name": "$name",
"value": "$value"
},
{
"name": "$name",
"value": "$value"
}
]}
}
EDIT: Так что я в конечном итоге делает только с помощью StringBuilder для создания начального блока, а затем добавить последующие разделы. Возможно, это не самый изящный способ сделать это, но он работает!
//Create the json string
StringBuilder json = new StringBuilder("""{
"hostname": "$hostname",
"path": "$path",
"extPath": "$extPath",
"appName": "$appName",
"update": {"parameter": ["""
)
//Append
sql.eachRow("""<query>""",
{ params ->
json.append("""{ "name": "params.name", "value": "params.value" },""");
}
)
//Add closing json tags
json.append("""]}}""")
Спасибо за предложение. – ssbsts
Если бы это помогло, не могли бы вы принять ответ? – sensei