Мой файл JSON
{
"General": [
{
"AppUrl": "abc.com/",
"HTTPResponseCode": "200",
"QA Build Version#": "4.3.44"
}
]
}
Я хочу получить количество элементов (пары ключ-значение) указанного выше объекта JSON.
Я пробовал использовать приведенный ниже код, но он возвращает count
как 1.
Мой код
def InputJSON = new JsonSlurper().parse(new File(fileName))
def count = InputJSON.General.size()
@Ivar Да, вы правы, но я хочу получить количество свойств внутри общего объекта.
Хорошо, но что, если в массиве есть второй элемент? Вы хотите посчитать только те, которые относятся к первому элементу? И что вы пытаетесь сделать с этим подсчетом? (Возможно, мы сможем предложить лучшее решение, если будем знать контекст.)
@Ivar я хочу проанализировать все свойства внутри объекта General и на основе счетчика создания цикла получить пару ключ-значение вместо получения одного за другим. в функции он может увеличивать свойства, так что я возвращаю счет и цикл с размером.
@Ivar я хочу проанализировать все свойства внутри объекта General и на основе счетчика создания цикла получить пару ключ-значение вместо получения одного за другим. в функции он может увеличивать свойства, так что я возвращаю счет и цикл с размером.
Может ли это стать для вас решением? Перебрать элементы в InputJSON.General
, а затем перебрать все свойства. Итак, InputJSON.General.each { row -> row.each { key, value -> println "$key : $value" } }
@Ivar Спасибо, это помогло.
Возможно, вам стоит переписать этот вопрос на вашу актуальную проблему. Получение счета было для лимита for
? Или, скорее, какое отношение это имеет к более поздней итерации? В противном случае это data.General*.size().sum()
для всех свойств верхнего уровня или data.General*.size()
для списка.
Но в вашем массиве
General
является только один элемент. Массив содержит единственный объект со свойствамиAppUrl
,HTTPResponseCode
иQA Build Version#
.