使用spath读取splunk jsonArray

问题描述 投票:0回答:1

这是我的布景:

| makeresults
| eval _raw="[[\"A\",\"AA\"],[\"B\",\"BB\"],[\"C\",\"CC\"]]"
|spath  path={}{} output=data

我希望A,B和C一起组成3个不同的元组,但我的要求与我合而为一。

我可以做类似的事情

|spath  path={0}{} output=data0
|spath  path={1}{} output=data1
|spath  path={2}{} output=data2

但是我正在寻找更动态的东西:)

任何想法?

arrays json splunk
1个回答
0
投票

假设您的数据不包含任何其他JSON,则可以使用正则表达式提取每个条目并以这种方式进行处理。检查此示例。

| makeresults count=5
| eval random=random()
| eval _raw="[[\"A\",\"AA\"],[\"B\",\"BB\"],[\"C\",\"CC\"]]"
| rex max_match=0 field=_raw "(?<d>\[[^\[\]]+\])"
| mvexpand d
| streamstats count by random
| eval data_{count}=d
| fields _time, data_*, random
| stats values(_time) as _time, values(*) AS * by random
| fields - random

我为LOL添加了一些额外的复杂性。 streamstats用于获取一个递增计数器,然后该计数器用于按data_0data_1等顺序创建一些新的列名。...在开始时会生成一个随机数,该随机数将包含在事件中,因此您可以在最后加入所有拆分事件。

© www.soinside.com 2019 - 2024. All rights reserved.