我有一些 Splunk 事件,其中包含一个名为
ResponseDetails
的字段。 ResponseDetails
是一个 JSON 对象,它包含一个具有名为 results
的属性的子对象。 results
是具有名为 description
的属性的对象数组。一个例子ResponseDetails
看起来像这样:
{ {"results":[{"description":"Item was successfully added"}]} }
我只对
description
感兴趣。如何检索description
中results
的ResponseDetails
属性的值并将其放入名为“message”的变量中?我尝试了以下但没有成功:
| spath input=ResponseDetails output=message path=results{}.description
但是,
message
是一个空字符串,上面使用的方法。我做错了什么?
| spath input=ResponseDetails
| rename ResponseDetails.results{}.description as message
| table message
spath 命令可以将字段提取为 JSON 然后是 table 命令
results 键后面的大括号{} 用于指定我们要匹配results 数组中的所有元素。没有它们,spath 将只匹配结果数组的第一个元素
正如@RichG 在评论中正确指出的那样,更新了代码。
试试这个(假设 ResponseDetails 位于事件的根目录)
| spath input=_raw
path=ResponseDetails.results{0}.description
output=message
| table _time message