#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. В основном то же самое, что и раньше. Снимите квадратные скобки, но теперь, чтобы убедиться, что все элементы находятся в выводе. Я попытался сделать петлю, но это не сработало.