【发布时间】:2018-03-28 02:09:08
【问题描述】:
您好,我的 logstash ruby 过滤器代码如下。
ruby {
code => "jsondata = event.get('[json]')
puts jsondata
jsondata.to_hash
jsondata.each { |key, value|
puts key
puts value
event.set(['json']['#{key}']['command_ip'], key)
}
"
}
我的 json 字符串是
{
"182.1xx.xx.xx": {
"status": "Failed",
"result": "Error String"
},
"192.1xx.xx.xx": {
"status": "Success"
}
}
我需要的最终结果应该是这样的。如何将键值插入到 json 块中。
{
"182.1xx.xx.xx": {
"host" : "182.1xx.xx.xx"
"status": "Failed",
"result": "Error String"
},
"192.1xx.xx.xx": {
"host" : "192.1xx.xx.xx"
"status": "Success"
}
}
但是当我尝试插入可以从 json 键中提取的主机值时,它会抛出异常,因为“发生 Ruby 异常:没有将字符串隐式转换为整数”。
请帮我解决这个问题。
【问题讨论】: