如何在Splunk中提取JSON一级键并以表格格式展示
解决方案
你遇到的问题是因为多次使用spath给同一字段赋值,后执行的命令会覆盖之前的值,所以最终只保留了movie2的信息。可以通过json命令的多键值对模式直接将每个顶级JSON对象转为单独行,实现需求:
| makeresults | eval _raw = "{ \"movie1\": { \"genre\": \"Comedy\", \"review\": \"Good\", \"release\": \"01:02:2023\" }, \"movie2\": { \"genre\": \"Action\", \"review\": \"Average\", \"release\": \"01:01:2023\" } }" | json mode=multikv flatten_keys=t | rename "_key" as Movie_List, "genre" as genre, "review" as review, "release" as release_date | fields Movie_List genre review release_date
执行结果:
| Movie_List | genre | review | release_date |
|---|---|---|---|
| movie1 | Comedy | Good | 01:02:2023 |
| movie2 | Action | Average | 01:01:2023 |
关键步骤说明:
json mode=multikv flatten_keys=t:将JSON中的每个顶级对象(movie1、movie2)拆分为独立事件行,同时生成_key字段存储原顶级键名。rename命令将_key重命名为需求中的Movie_List,并保留其他字段。fields命令过滤掉不需要的系统字段,只展示目标列。
内容的提问来源于stack exchange,提问作者A.G.Progm.Enthusiast
相关产品推荐
相关产品推荐

