Подсчет элементов в объекте JSON с помощью Groovy

Мой файл 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()

Но в вашем массиве Generalявляется только один элемент. Массив содержит единственный объект со свойствами AppUrl, HTTPResponseCode и QA Build Version#.

Ivar 06.04.2021 14:19

@Ivar Да, вы правы, но я хочу получить количество свойств внутри общего объекта.

Prabu 06.04.2021 14:35

Хорошо, но что, если в массиве есть второй элемент? Вы хотите посчитать только те, которые относятся к первому элементу? И что вы пытаетесь сделать с этим подсчетом? (Возможно, мы сможем предложить лучшее решение, если будем знать контекст.)

Ivar 06.04.2021 14:37

@Ivar я хочу проанализировать все свойства внутри объекта General и на основе счетчика создания цикла получить пару ключ-значение вместо получения одного за другим. в функции он может увеличивать свойства, так что я возвращаю счет и цикл с размером.

Prabu 06.04.2021 14:44

@Ivar я хочу проанализировать все свойства внутри объекта General и на основе счетчика создания цикла получить пару ключ-значение вместо получения одного за другим. в функции он может увеличивать свойства, так что я возвращаю счет и цикл с размером.

Prabu 06.04.2021 14:44

Может ли это стать для вас решением? Перебрать элементы в InputJSON.General, а затем перебрать все свойства. Итак, InputJSON.General.each { row -> row.each { key, value -> println "$key : $value" } }

Ivar 06.04.2021 15:01

@Ivar Спасибо, это помогло.

Prabu 06.04.2021 15:22

Возможно, вам стоит переписать этот вопрос на вашу актуальную проблему. Получение счета было для лимита for? Или, скорее, какое отношение это имеет к более поздней итерации? В противном случае это data.General*.size().sum() для всех свойств верхнего уровня или data.General*.size() для списка.

cfrick 06.04.2021 15:42
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
8
43
0

Другие вопросы по теме