powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Распарсить JSON файл с использованием JOLT
20 сообщений из 20, страница 1 из 1
Распарсить JSON файл с использованием JOLT
    #39935636
kirill demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
у меня есть проблема со спецификацией для JOLT трансформации для такого JSON файла:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
{"id" : "6aa0734f-6d6a-4b95-8a2b-2dde346f9df7",
  "ts" : 1583684304500000,
  "measurements" : {
    "A4" : {
      "value" : 164341584
    },
    "A5" : {
      "value" : -20486832
    }



мне необходимо получить вот такой output:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
{"id" : "6aa0734f-6d6a-4b95-8a2b-2dde346f9df7",
"ts" : 1583684304500000,
"A4" : 164341584,
"A5" : -20486832
}


я уже сломал голову как это сделать!
помогите,а?

Спасибо
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936081
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kirill demidov
Добрый день,
у меня есть проблема со спецификацией для JOLT трансформации для такого JSON файла:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
{"id" : "6aa0734f-6d6a-4b95-8a2b-2dde346f9df7",
  "ts" : 1583684304500000,
  "measurements" : {
    "A4" : {
      "value" : 164341584
    },
    "A5" : {
      "value" : -20486832
    }



мне необходимо получить вот такой output:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
{"id" : "6aa0734f-6d6a-4b95-8a2b-2dde346f9df7",
"ts" : 1583684304500000,
"A4" : 164341584,
"A5" : -20486832
}


я уже сломал голову как это сделать!
помогите,а?

Спасибо



Можете закрутить json в map, отредактировать map и обратно преобразовать в json.

Хорошего вам дня!
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936083
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kirill demidov, покажи свой исходник где ты ломал голову.

Ты-ж понимаешь что программист "думает кодом".
Или ты в уме собрался писать?
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936095
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kirill demidov,не знаю что такое джолт ,судя по всему если я о нем не знаю это какая то ненужная шляпа
а если у тебя задача из одного джейсона сделать другой напиши обычный мапер в три строчки кода
если хочешь я тебе его бесплатно завтра сваяю
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936097
kirill demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
вот спецификация, которую я использую вот https://jolt-demo.appspot.com/#bucketToPrefixSoup


[
{
"operation": "shift",
"spec": {
"id": "id",
"ts": "ts",
"measurement": {
"*": "&"
}
}
}
]
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936098
kirill demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asv79,
спасибо - но мне это нужно в процессоре apache nifi - поэтому просто решение в коде не поможет
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936100
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov


Можете закрутить json в map, отредактировать map и обратно преобразовать в json.

Хорошего вам дня!

зачем в мапу класть? плодить мусор в памяти не есть хорошо
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936108
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936112
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

json to json transformation rly?))
wow this is amazing)))

я честно не понимаю что делает эта библиотека)
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936113
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я почитал примеры. Кажется понял. Это аналог XSLT/XPath.
Есть исходный Json документ. И есть DSL для трансформации его в другой документ.

Предполагается этот DSL тоже пишется не на java а на json.

Вот тут тестовое приложение

https://github.com/bazaarvoice/jolt/blob/master/jolt-core/src/test/java/com/bazaarvoice/jolt/sample/JoltSample.java

И тут тестовые данные

https://github.com/bazaarvoice/jolt/tree/master/jolt-core/src/test/resources/json/sample
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936115
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

да смысл общий понятен ,Вопрос нах оно?
этот мапер написать дел 10 секунд- зачем тащить какие то кастомные либы себе в проект ?
тоесть например в энтерпрайзе это сразу нет
в каких то инди проектах мей би?вопрос для чего?
ну тоесть такое себе из разряда писедержателя на писуаре))
предлагаю автора в бан - скорей всего реклама этой шляпы
меня в админы
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936117
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton


Предполагается этот DSL тоже пишется не на java а на json.

не представляю даже кто может это реализовать ,а главно для чего)
писать джейсон и тянуть либу себе в проект ,вместо одного метода из двух строчек?
я как раз щас эти маперы пилю и честно не вижу бенефита от юза этой либы
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936126
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
mayton,

да смысл общий понятен ,Вопрос нах оно?
этот мапер написать дел 10 секунд- зачем тащить какие то кастомные либы себе в проект ?
тоесть например в энтерпрайзе это сразу нет
в каких то инди проектах мей би?вопрос для чего?
ну тоесть такое себе из разряда писедержателя на писуаре))
предлагаю автора в бан - скорей всего реклама этой шляпы
меня в админы


Смысл - тот-же что и Блиновские константы. Экстернализация логики. Логика трансформации Json
выносится из Java кода и становится ПАРАМЕТРОМ. Тоесть ее можно передать тоже как аргумент.
Ее можно положить во внешний файл. Или передать как аргумент к сервлету или к REST методу.

+Автоматически у нас появляются законы и гарантии. Если надо разработать много (+100500)
таких трансформеров то мы гарантируем что они работают в безопасном контексте и не делают
никаких файловых и сетевых операций. Тоесть их разработку можно поручать индусами
и китайцам и делать минимальное code-review.
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936132
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton


Смысл - тот-же что и Блиновские константы. Экстернализация логики. Логика трансформации Json
выносится из Java кода и становится ПАРАМЕТРОМ. Тоесть ее можно передать тоже как аргумент.
Ее можно положить во внешний файл. Или передать как аргумент к сервлету или к REST методу.

+Автоматически у нас появляются законы и гарантии. Если надо разработать много (+100500)
таких трансформеров то мы гарантируем что они работают в безопасном контексте и не делают
никаких файловых и сетевых операций. Тоесть их разработку можно поручать индусами
и китайцам и делать минимальное code-review.

это понятно - непонятно зачем мне тащить кучу кода в проект - если я напишу свой мапер за несколько строк кода
причем например у нас все маперы тянут за хвост жука- сможет ли вот эта нонейм либа это сделать? думаю нет
при передаче параметров она тупо ляжет)

нее майтон - тут я с тобой не согласен - джейсон ту джейсон это почти всегда свои фишки и никакая библиотека сторонняя не зная вводных данных тебе не поможет
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936141
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А jsp? Те-же яйца. А XSLT? А SPEL? Droolz?

Это все доменно специфичные языки которые решают одну узкую задачу.

Кстати ты не надейся что будешь писать только на java. Поговори с бывалыми.
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936144
kirill demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, боюсь что я не полностью себя объяснил - я разработчик BI\BigData - я не пишу приложения на Java, а использую готовые инструменты open source - такие как Apache Nifi - ELT/ETL service.

У меня стояла задача выгрузить из RabbitMQ данные в postgres - я получал JSON в одном формате и должен был каждое сообщение записать в таблицу в другом формате. В nifi есть несколько способов решения этой задачи - в том числе и с помощью кастомного скрипта (вот тут и можно было обойтись простым мэпером), но я как best practice стараюсь как можно меньше дописывать компонентов - трудно потом поддерживать. Другой способ это использовать JOLT processor, в котором необходимо было прописать спецификацию с которой и запутался - отсюда и вопрос.

Но в итоге я получил ответ в stock overflow с подходящей спецификацией, которая решила проблему:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
[
  {
    "operation": "shift",
    "spec": {
      "ts": "ts",
      "id": "id",
      "measurements": {
        "*": {
          "*": {
            "@": "&2"
          }
        }
      }
    }
  }
]



Благодарю всех за активное участие и желание помочь!
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936247
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ты и жук!

Всех напряг а сам тихо запостил в стековер.
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936280
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну ты и жук!

Всех напряг а сам тихо запостил в стековер.


В SO быстрее отвечают видимо.

https://stackoverflow.com/questions/60589638/jolt-transformation-unnesting-problem-with-json

Хорошего вам дня!
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39936797
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в nifi можно на груви писать а в груви есть мапы

https://stackoverflow.com/questions/48477929/nifi-how-to-write-sub-nested-element-in-json/48478312#48478312
...
Рейтинг: 0 / 0
Распарсить JSON файл с использованием JOLT
    #39937206
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да все поезд ушел. Автор жеж пишет. Я дескыть не Java-разраб. Зря парились. И топик можно закрыть.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Распарсить JSON файл с использованием JOLT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]