2017-03-15 4 views
0

内のリストJSONにネストされたフィールドを変換SG: 「人」:{ 「名」:「XX」、 「住所」: "124 " }このような、私はJSON形式のリストにフィールドを変換したいlogstash

に "人":[{" 名 ":" XX」、 "住所": "124"}]

は助けてくれてありがとう。

+0

を、してください:のような

テストが見えますこれまでに試したことを投稿してください。 – Uttam

+0

名前フィールドは常にハードコードされていますか?また好奇心から、これのポイントは何ですか?ランダムなKey-Valueペアを使用するリストはどのように使用されますか?これはルビフィルタである必要があります。カスタムロジックが含まれています。 – pandaadb

+0

xmlファイルからフィールドに名前とアドレスが抽出されます。名前とアドレスフィールドのリストである新しいフィールドを作成したいと思います。その理由は、リストjsonがそれを解析してデータを抽出するのを待っているモジュールがあるからです。それが動作 –

答えて

0

ルビーの魔法のビットは、ここに行います:

input { 
    stdin{} 
} 

filter { 

    ruby { 
     code => " 
      require 'json' 
      event['res'] = [JSON.parse(event['message'])['person']] 
     " 
    } 

} 


output { 
    stdout { codec => rubydebug } 
} 

は、これは単にpersonオブジェクトを抽出し、フィールドに追加し、その後、あなたのJSON文書を含むあなたのmessageフィールドを解析します。あなたが見ることができるように、あなたのハッシュは今助けインデックス0

希望のリストに住んでいる

[email protected]:~/dev/logstash$ ./logstash-2.3.2/bin/logstash -f conf_json_list/ 
Settings: Default pipeline workers: 8 
Pipeline main started 
{ "person": { "name":"XX", "adress":"124" }} 
{ 
     "message" => "{ \"person\": { \"name\":\"XX\", \"adress\":\"124\" }}", 
     "@version" => "1", 
    "@timestamp" => "2017-03-15T11:34:37.424Z", 
      "host" => "pandaadb", 
      "res" => [ 
     [0] { 
       "name" => "XX", 
      "adress" => "124" 
     } 
    ] 
} 

アルトゥル

+0

はどうもありがとうございました...別の提案は次のとおりです。 ルビー{ コード=> " イベント[ 'A'] = [イベント[ 'A']] " } –

関連する問題