Groovy - Построение JSON из строки

Я использую Groovy, я пытался создать простую функцию, которая будет создавать объект Json из предоставленной строки Json, затем я пытаюсь напечатать эту строку, но, к сожалению, он добавляет квадратные скобки к выводу.

Вот фрагмент из моего кода:

def JsonBuilder ConstructJsonObject (jsonStr) {
    def jsonToReturn = new JsonBuilder();
    def root = jsonToReturn(jsonStr);
    return jsonToReturn;
}

String jsonStr = "{id: '111'}";
println(jsonStr);
def jsonObject = ConstructJsonObject(jsonStr);
println(jsonObject.toPrettyString());

И вот вывод:

{id: '111'}

["{id: '111'}"]

Он возвращает массив, а не чистый Json.

1 ответ

Решение

Если вы измените свой ввод на действительный json (с двойными кавычками вокруг ключей и значений), вы можете сделать:

import groovy.json.*

String jsonStr = '{"id": "111"}'
println new JsonBuilder(new JsonSlurper().parseText(jsonStr)).toPrettyString()

Печатать

{
    "id": "111"
}
Другие вопросы по тегам