简体   繁体   English

logstash 聚合过滤器插件中的嵌套 json 对象

[英]Nested json objects in logstash aggregate filter plugin

I'm using logstash aggregate filter plugin to insert data to ES.我正在使用 logstash 聚合过滤器插件向 ES 插入数据。

I want to create a json like我想创建一个像

"Countries" : {
        "Asia" : {
            "name" : "Srilanka"
        },
        "Africa" : {
            "name" : "Kenya"
        }
    }

when uploaded to ES.上传到 ES 时。

I have tried我试过了

map['Countries'] = {
        map['Asia'] =  {
            'name' => event.get('name_Asia')
        },
        map['Africa'] =  {
            'name' => event.get('name_Africa')
        }
}

But it doesn't work.但它不起作用。

Is it possible to make create above json?是否可以在json上方进行创建?

In the first place to produce nested hashes, you should use hashrockets => not assignments inside a hash.首先要生成嵌套散列,您应该使用 hashrockets =>而不是在散列中赋值。 One might create this hash in one turn:人们可能会在一轮中创建这个哈希:

map = { 
  'Countries' => {
    'Asia' =>  {
      'name' => event.get('name_Asia')
    },
    'Africa' => {
      'name' => event.get('name_Africa')
    }
  }
}

Then you can produce JSON out of it with JSON.dump然后你可以用JSON.dump从中生成 JSON

require 'json'
JSON.dump(map)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM