Как использовать библиотеку Jackson JSON для печати всего в файле json, включая объекты вложенного массива без ключа и с ⇐ JAVA
-
Гость
Как использовать библиотеку Jackson JSON для печати всего в файле json, включая объекты вложенного массива без ключа и с
Мне нужно распечатать все данные в файле JSON, используя Jackson в Java. Я прошёл 90% пути. Вот мой файл Json:
{ "мои данные": { "номер телефона": "5555555555", "userId": "1234", "версия": "2", "больше данных": { "данные транзакции": [ { «Торговец»: «Волмарт», «авторизованный»: «истина», "сумма": "7,50", «is_card_expired»: ложь, "credit_limit": "2000" } ] } } } Я могу распечатать все, что имеет ключ, но мне нужна помощь в правильной работе с массивом внутри данных транзакции. Обратите внимание, что это массив без ключа. Поэтому попасть внутрь сложно, и мой итератор (Iterator Iterator = node.fields()) оказывается пустым. Я не могу использовать node.elements(), потому что мне нужно получить ключ для всего, даже если его нельзя распечатать. Чтобы распечатать все, мой результат должен выглядеть примерно так:
"номер телефона": "5555555555" "userId": "1234" "версия": "2" «Торговец»: «Волмарт», «авторизованный»: «истина», "сумма": "7,50", «is_card_expired»: ложь, "credit_limit": "2000" Лучшее, что мне удалось придумать, это после объявления моего интератора я проверяю, есть ли в нем Next(), а если нет, то создаю еще один итератор элементов (Iterator iterator2 = node. элементы();). Пока это происходит дальше, я рекурсивно вызываю свой метод на каждом из узлов внутри него. Это работает, но я не уверен, что это лучшее решение. Как бы вы аккуратно перебирали/обходили мой файл JSON, чтобы поразить каждый узел, независимо от того, является ли это объектом, массивом или узлом значения, и независимо от того, существует ли ключ (если ключ не существует) тогда мне не нужно его распечатывать, мне просто нужно войти в этот контейнер и распечатать элементы внутри него
Мне нужно распечатать все данные в файле JSON, используя Jackson в Java. Я прошёл 90% пути. Вот мой файл Json:
{ "мои данные": { "номер телефона": "5555555555", "userId": "1234", "версия": "2", "больше данных": { "данные транзакции": [ { «Торговец»: «Волмарт», «авторизованный»: «истина», "сумма": "7,50", «is_card_expired»: ложь, "credit_limit": "2000" } ] } } } Я могу распечатать все, что имеет ключ, но мне нужна помощь в правильной работе с массивом внутри данных транзакции. Обратите внимание, что это массив без ключа. Поэтому попасть внутрь сложно, и мой итератор (Iterator Iterator = node.fields()) оказывается пустым. Я не могу использовать node.elements(), потому что мне нужно получить ключ для всего, даже если его нельзя распечатать. Чтобы распечатать все, мой результат должен выглядеть примерно так:
"номер телефона": "5555555555" "userId": "1234" "версия": "2" «Торговец»: «Волмарт», «авторизованный»: «истина», "сумма": "7,50", «is_card_expired»: ложь, "credit_limit": "2000" Лучшее, что мне удалось придумать, это после объявления моего интератора я проверяю, есть ли в нем Next(), а если нет, то создаю еще один итератор элементов (Iterator iterator2 = node. элементы();). Пока это происходит дальше, я рекурсивно вызываю свой метод на каждом из узлов внутри него. Это работает, но я не уверен, что это лучшее решение. Как бы вы аккуратно перебирали/обходили мой файл JSON, чтобы поразить каждый узел, независимо от того, является ли это объектом, массивом или узлом значения, и независимо от того, существует ли ключ (если ключ не существует) тогда мне не нужно его распечатывать, мне просто нужно войти в этот контейнер и распечатать элементы внутри него
Мобильная версия