gpt4 book ai didi

ruby - Logstash过滤出嵌套json数组中的键的值为空的值

转载 作者:行者123 更新时间:2023-12-02 23:51:04 28 4
gpt4 key购买 nike

我有一个广泛的以Json结尾的Logstash管道,如下所示:

{
"keyA": 1,
"keyB": "sample",
"arrayKey": [
{
"key": "data"
},
{
"key": null
}
]
}

我要实现的是过滤 "arrayKey"并删除其中的对象,其中 "key"的值为 null

试过这个没有运气:
filter {
ruby {
code => "
event.get('arrayKey').each do |key|
[key].delete_if do |keyCandidate|
if [keyCandidate][key] != nil
true
end
end
end
"
}
}

这不会从| hash |:| Int |中找到隐式转换器。错误。我该如何实现?有没有更简单的方法可以做到这一点?

最佳答案

正如Aleksei指出的那样,您可以使用拒绝创建不包含[key]为null的条目的数组副本。您必须使用event.set覆盖[arrayKey]的初始值

    ruby {
code => '
a = event.get("arrayKey")
if a
event.set("arrayKey", a.reject { |x| x["key"] == nil })
end
'
}

关于ruby - Logstash过滤出嵌套json数组中的键的值为空的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57654456/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com