2017-05-11 1 views
0

私はPentahoの新しいユーザーです。私はケトルステップでJSONを解析しようとしています。Pentahoで可変JSONフィールドを操作する

Steps

JSON parsing

私は変更されません全てのJSONフィールドを解析する方法を知っているが、彼らが配列されているので、私は長さを決定できないため、いくつかのフィールドがあります。次の例では、フィールド「palavras_chave」を見て:

{ 
    "identificacao": "Manejo Floinga. ", 
    "historico": "A técni.", 
    "descricao": "A.sasasa ", 
    "objetivos": "Existem. ", 
    "sustentabilidade": "Co.", 
    "vantagens_desvantagens": "VANTAGENS: resi", 
    "custos": "INVESTIMENTOS e CUSTOS: a", 
    "direitos": "Tecnologia livre. ", 
    "instituicao": "Tecnologia ", 
    "assistencia_manutencao_te": " ", 
    "experiencia": "Existem cerca de ", 
    "entraves_adocao": "ENTRAção. ", 
    "condicoes_requeridas": "Aio.", 
    "fornecedores": "Sódocumentlarizada.", 
    "usuarios": "Produtecolementar. ", 
    "programa": "Eme.", 
    "avaliacao_impacto": " reidos. ", 
    "transferencia_tecnologia": "públrsos.", 
    "outros": "Até 1000 cs", 
    "visualizacao_tecnologia": "Consu", 
    "palavras_chave": [ 
     "Caaga", 
     "uso vel", 
     "padeireiros", 
     "manrestal" 
    ], 
    "referencias": "Livro '.pdf", 
    "replicabilidade": "Atéa. ", 
    "fonte": "Meiro" 
}, 

コードの別の部分を:

{ 
    "identificacao": "Manejatinga. ", 
    "historico": "A técni.", 
    "descricao": "A.sasasa ", 
    "objetivos": "Existem. ", 
    "sustentabilidade": "Co.", 
    "vantagens_desvantagens": "VANNS: resi", 
    "custos": "INVESTUSTOS: a", 
    "direitos": "Tecnologia livre. ", 
    "instituicao": "Tecnologia ", 
    "assistencia_manutencao_te": " ", 
    "experiencia": "Existem cerca de ", 
    "entraves_adocao": "ENTRAção. ", 
    "condicoes_requeridas": "Aio.", 
    "fornecedores": "Sódocumeda.", 
    "usuarios": "Produtentar. ", 
    "programa": "Em áre.", 
    "avaliacao_impacto": " reduzidos. ", 
    "transferencia_tecnologia": "públicos diversos.", 
    "outros": "Até 1000 cs", 
    "visualizacao_tecnologia": "Cong", 
    "palavras_chave": [ 
     "teste", 
     "aaaaaaa", 
    ], 

は、どのように私はやかんでこれを可変長と仕事との入力を解析することができますか?私がPythonでプログラミングしていたのであれば、単純に配列全体に行き渡り、ループの中でループ内でやりたいことをやります。

ここでこれを行う方法はありますか?概念は間違っていますか?

JSON入力ステップで配列$.palavras_chaveを解析します。あなたは次の操作を行うことができます

答えて

0

。カンマで区切られた配列要素を持つフィールドが表示されます。ステップSplit fields to rowsを接続し、このフィールドをカンマで分割します。結果に配列要素ごとに1つの行が与えられます。私はあなたの問題のためのより良い解決策があると確信していますが、これは私が考えることができる迅速な解決策でした。

+0

大きな問題は、配列 "palavras_chave"が常に同じサイズではないため、フィールドを行に分割できないことです。可変サイズのフィールドを扱うことはできますか? – WagnerAlbJr

+0

私はあなたの意見を持っています。ただし、コンマでフィールドを分割すると、配列要素ごとに1つの行が自動的に生成されます。配列に3つの要素がある場合、3つの行が生成されます。 9つの要素がある場合、9つの行が生成されます。カンマはここで重要な選手です。私はちょうど私のマシンでこれをテストし、それが動作します。 – Nikhil

+0

ケトルファイルを裁断できますか?私はaprreciate、私はテーブルの上に関係を挿入するために、配列の値とその父親の間の関係をどうやって作るのか分からない。 – WagnerAlbJr

0

私はデータを正規化する方法を探していました(これは前の用語ではありませんでした)、ペンタホフォーラムのmarabuというメンバーが助けました。 これを行う方法は簡単です。データを正規化したい場合は、オプション "Rownum in output"をマークし、以下のような名前を付ける必要があります。その後 The rownum option

私は、このように、私は、リレーショナルDBMSに、右の参照を挿入することができ、各JSONの各IDへの参照を維持するためにROWNUMフィールドを使用することができます。ステップはここにあります。 the kettle step

関連する問題