Вход JSON для интеграции данных Pentaho в задании преобразования не отображает все объекты json - PullRequest
0 голосов
/ 26 февраля 2019

Я работаю с инструментом интеграции данных Pentaho для некоторых заданий обработки ETL.

Мой ввод данных - это файл json с именем data.json, имеющий несколько объектов json:

{"id":"333","name":"iit"}
{"id":"444","name":"nit"}
{"id":"555","name":"iiit"}
{"id":"666","name":"jnit"}

и когда я использую вход json в дизайне преобразования PDI, предварительный просмотр json показывает только первую строку.Пожалуйста, проверьте этот скриншот enter image description here

Но то же самое работает, когда я изменяю мой файл data.json следующим образом:

{
    "data" : [
                {"id":"333","name":"iit"},
                {"id":"444","name":"nit"},
                {"id":"555","name":"iiit"},
                {"id":"666","name":"jnit"}
            ]
}

Пожалуйста, проверьте скриншот для этогоздесь: enter image description here

Пожалуйста, помогите, как я могу получить все объекты json, присутствующие в файле data.json, используя следующий формат:

{"id":"333","name":"iit"}
{"id":"444","name":"nit"}
{"id":"555","name":"iiit"}
{"id":"666","name":"jnit"}

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

Ваш путь к $ .id и $ .name в порядке.Проблема в JSON.

{"id":"333","name":"iit"}
{"id":"444","name":"nit"}
{"id":"555","name":"iiit"}
{"id":"666","name":"jnit"}

Это недопустимый JSON, и поэтому читается только первая строка. Он читает эту первую строку, а затем встречает вторую открытую фигурную скобку, не нажимаязапятая и просто останавливается, потому что не знает, что делать с недопустимым JSON.

Отформатируйте ваш JSON следующим образом, и он должен работать без изменений вашего JSONPath.

{"id":"333","name":"iit"},
{"id":"444","name":"nit"},
{"id":"555","name":"iiit"},
{"id":"666","name":"jnit"}
0 голосов
/ 06 марта 2019

Если ваш JSON-файл выглядит так, можно было бы обойти это решение:

Создать текстовый файл-ввод, который читает каждую строку и отправляет строки на JSON-ввод.

Каждая строка будет рассматриваться как собственный JSON-ввод.

Ввод текстового файла и JSON-ввод

Затем можно использоватьJSON-узел, который вы намереваетесь (если я правильно вас понимаю)

JSON-input

Ваш вывод будет выглядеть примерно так:

Вывод

Используйте узел 'select values' для удаления столбца json.

0 голосов
/ 26 февраля 2019

XPath:

$. Data [*]. Id

Отличается от:

$. Data

Попробуйте использовать $ .. idи $ .. name, должны работать в обоих случаях и принести вам все объекты.

...