удаление ведущих квадратных скобок из json с помощью groovy

#json #groovy #jsonslurper

Вопрос:

Мне нужен способ удалить ведущие квадратные скобки из файла json. Я делаю это в SAP cloud platform integration (CPI). В настоящее время я думал об использовании groovy, но, похоже, не могу найти способ сделать это. Вот пример JSON:

 [{
        "salesOrderNumber": "1234567",
        "orderStatus": "Complete",
        "customerPONumber": "7654321",
        "soldToID": "ABC",
        "soldToName": "CBA"

    }
]
 

Заранее спасибо

Код, который я использовал для получения только одного элемента, но мне нужно получить несколько, если таковые имеются.

 def Message processData(Message message) {

    def body = message.getBody(String.class);
    def jsonParser = new JsonSlurper();
    def jsonObject = jsonParser.parseText(body);

    def json = JsonOutput.toJson(jsonObject[0]);

    println(json);

    message.setBody(json);
    
    return message;
}
 

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

1. Пожалуйста, добавьте код, который вы пробовали, и то, как он не удался (например, ошибки, трассировки стеков, журналы…), чтобы мы могли его улучшить.

Ответ №1:

У вас есть список объектов в json. Снять квадратные скобки означает избавиться от списка и сохранить только один элемент этого списка.

Кстати, что делать, если в списке несколько или ноль элементов?

Итак, ваш алгоритм

  • разбор json
  • получить первый элемент list[0]
  • сериализовать результат обратно в json

В качестве ссылки на код посмотрите на эту документацию: https://groovy-lang.org/json.html

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

1. Да, если есть несколько элементов, это не работает. Думая о том, как он будет работать с несколькими элементами.

2. Что вам нужно получить, когда в массиве несколько объектов?

3. В основном то же самое, что и раньше. Снимите квадратные скобки, но теперь, чтобы убедиться, что все элементы находятся в выводе. Я попытался сделать петлю, но это не сработало.