我正在使用logstash聚合过滤器插件将数据插入ES。
我想创建一个
之类的json"Countries" : {
"Asia" : {
"name" : "Srilanka"
},
"Africa" : {
"name" : "Kenya"
}
}
上传到ES时。
我尝试过
map['Countries'] = {
map['Asia'] = {
'name' => event.get('name_Asia')
},
map['Africa'] = {
'name' => event.get('name_Africa')
}
}
但是它不起作用。 是否可以在json上方进行创建?
答案 0 :(得分:1)
首先要产生嵌套哈希,您应该使用哈希火箭=>
而不是哈希内部的赋值。一个回合可以创建此哈希值:
map = {
'Countries' => {
'Asia' => {
'name' => event.get('name_Asia')
},
'Africa' => {
'name' => event.get('name_Africa')
}
}
}
然后您可以使用JSON.dump
require 'json'
JSON.dump(map)