根据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"将覆盖数据字段。