根据logstash中的模式将字符串转换为数组
convert string to array based on pattern in logstash
我的原始数据。
{
message: {
data: "["1,2","3,4","5,6"]"
}
}
现在我想将数据字段的值转换为数组。
所以它应该变成:
{
message: {
data: ["1,2", "3,4", "5,6"]
}
}
通过使用
mutate {
gsub => ["data", "[\[\]]", ""]
}
我去掉了方括号。
在此之后,我尝试了基于逗号的拆分。但这是行不通的。因为我的数据也有逗号。
我试过写一个 dissect block 但是没用。
那么我应该如何进行呢?
您是否尝试过 json 过滤器?如果数据字段始终包含有效的 json 数据,您可以像这样使用 json 过滤器:
json {
source => "data"
target => "data"
}
使用target => "data"
将覆盖数据字段。
我的原始数据。
{
message: {
data: "["1,2","3,4","5,6"]"
}
}
现在我想将数据字段的值转换为数组。 所以它应该变成:
{
message: {
data: ["1,2", "3,4", "5,6"]
}
}
通过使用
mutate {
gsub => ["data", "[\[\]]", ""]
}
我去掉了方括号。
在此之后,我尝试了基于逗号的拆分。但这是行不通的。因为我的数据也有逗号。
我试过写一个 dissect block 但是没用。
那么我应该如何进行呢?
您是否尝试过 json 过滤器?如果数据字段始终包含有效的 json 数据,您可以像这样使用 json 过滤器:
json {
source => "data"
target => "data"
}
使用target => "data"
将覆盖数据字段。