2016-02-23 4 views
1

Я пытаюсь обрабатывать некоторые неравномерные файлы JSON с использованием PDI (Pentaho), и после многого с помощью собственных инструментов я понял, что мне нужно разобрать файлы JSON до их обработки. Это пример для всего две строки:Анализ файла JSON для PDI

[{ 
    "UID": "34531513", 
    "identities": 
    [{ 
     "provider": "facebook", 
     "providerUID": "123145517", 
     "isLoginIdentity": true, 
     "oldestDataUpdatedTimestamp": 145227161126 
    }, 
    { 
     "provider": "site", 
     "providerUID": "321315415153", 
     "isLoginIdentity": false, 
     "oldestDataUpdated": "2015-07-14T13:37:43.682Z", 
     "oldestDataUpdatedTimestamp": 1436881063682 
     }] 
}, 
{ 
"UID": "1234155", 
"identities": 
     [{ 
     "provider": "facebook", 
     "providerUID": "123145517", 
     "isLoginIdentity": true, 
     "oldestDataUpdatedTimestamp": 145227161126 
     }] 
}] 

Проблема здесь состоит в том, что при различных значениях внутри идентичностей у меня нет ключа поле (UID). Но я хотел бы иметь разные строки для каждой отдельной Identity, не теряя свой UID. Таким образом, новым ключом будет UID + Provider (facebook, сайт или твиттер).

Что вы посоветуете?

Спасибо заранее,

Martin

ответ

0

Чтобы решить эту проблему в Pentaho вы должны цепи JSON входов.

Chained JSON Inputs

В своем первом входе получить UID:

First JSON step

А затем декодировать идентичностей на втором этапе:

Second JSON Step