You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Logstash Mutate过滤器提取嵌套JSON字段至根层级

使用Logstash Mutate过滤器处理嵌套JSON结构

如果要把嵌套在a字段下的所有子字段提取到根层级,同时移除原a字段,分两种场景处理:

场景1:已知所有子字段名称

直接用mutate过滤器的rename和remove_field指令,逐个将嵌套字段映射到根层级,再删除原a字段:

filter {
  mutate {
    # 将[a]下的子字段重命名到根层级
    rename => {
      "[a][b]" => "b"
      "[a][c]" => "c"
      # 有其他子字段的话继续添加
    }
    # 移除原来的嵌套字段a
    remove_field => ["a"]
  }
}

场景2:未知子字段名称(动态处理所有子字段)

如果a下的子字段数量或名称不确定,用ruby过滤器配合遍历操作更高效,自动提取所有子字段到根层级:

filter {
  ruby {
    code => "
      # 取出a字段的所有键值对
      event.get('a').each do |key, value|
        # 将键值对设置到根层级
        event.set(key, value)
      end
      # 删除原a字段
      event.remove('a')
    "
  }
}

如果a字段可能不存在,建议在ruby代码里加判断避免报错:

filter {
  ruby {
    code => "
      if event.get('a').is_a?(Hash)
        event.get('a').each do |key, value|
          event.set(key, value)
        end
        event.remove('a')
      end
    "
  }
}

内容的提问来源于stack exchange,提问作者aryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:52:03