<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to use spath to read dynamic path in Splunk Search</title>
    <link>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676368#M231332</link>
    <description>&lt;P&gt;It depends what you want to do next - if you just want to remove the a, b, c, and d from the field names, you could just do this&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| spath
| fields - _raw
| transpose 0 column_name=field
| eval field=mvindex(split(field,"."),0).".".mvindex(split(field,"."),2).".".mvindex(split(field,"."),3)
| transpose 0 header_field=field
| fields - column&lt;/LI-CODE&gt;</description>
    <pubDate>Fri, 02 Feb 2024 09:18:14 GMT</pubDate>
    <dc:creator>ITWhisperer</dc:creator>
    <dc:date>2024-02-02T09:18:14Z</dc:date>
    <item>
      <title>How to use spath to read dynamic path</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676364#M231331</link>
      <description>&lt;P&gt;Hi Team I have the below Json string coming as an event in Splunk logs .&lt;/P&gt;&lt;P&gt;after data, the next field could be a, b, c, d&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to read the x and y fields, How to write a single spath query like&amp;nbsp;&lt;/P&gt;&lt;P&gt;| spath input=inputJson&amp;nbsp; path="data.{*}.x"&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;{data : {a : {  x: {  }  y: {  }}} }

{data : {b : {  x: { }  y: {  }}} }

{data : {c : {  x: {  }  y: {  }}} }

{data : {d : {  x: {  }  y: {  }}} }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 08:52:42 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676364#M231331</guid>
      <dc:creator>mayurkale471757</dc:creator>
      <dc:date>2024-02-02T08:52:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to use spath to read dynamic path</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676368#M231332</link>
      <description>&lt;P&gt;It depends what you want to do next - if you just want to remove the a, b, c, and d from the field names, you could just do this&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| spath
| fields - _raw
| transpose 0 column_name=field
| eval field=mvindex(split(field,"."),0).".".mvindex(split(field,"."),2).".".mvindex(split(field,"."),3)
| transpose 0 header_field=field
| fields - column&lt;/LI-CODE&gt;</description>
      <pubDate>Fri, 02 Feb 2024 09:18:14 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676368#M231332</guid>
      <dc:creator>ITWhisperer</dc:creator>
      <dc:date>2024-02-02T09:18:14Z</dc:date>
    </item>
    <item>
      <title>Re: How to use spath to read dynamic path</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676373#M231335</link>
      <description>&lt;P&gt;It is producting below result ,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to read the x and y field&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;| makeresults count=1
| eval json_data="{\"data\": {\"a\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
| append [ makeresults count=1
          | eval json_data="{\"data\": {\"b\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
        ]
| append [ makeresults count=1
          | eval json_data="{\"data\": {\"c\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
        ]
| append [ makeresults count=1
          | eval json_data="{\"data\": {\"d\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
        ]
| spath
| fields - _raw
| transpose 0 column_name=field
| eval field=mvindex(split(field,"."),0).".".mvindex(split(field,"."),2).".".mvindex(split(field,"."),3)
| transpose 0 header_field=field
| fields - column&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="mayurkale471757_0-1706866358989.png" style="width: 400px;"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/29227i40FFBC7AF7F77836/image-size/medium?v=v2&amp;amp;px=400" role="button" title="mayurkale471757_0-1706866358989.png" alt="mayurkale471757_0-1706866358989.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 09:33:40 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676373#M231335</guid>
      <dc:creator>mayurkale471757</dc:creator>
      <dc:date>2024-02-02T09:33:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to use spath to read dynamic path</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676375#M231336</link>
      <description>&lt;LI-CODE lang="markup"&gt;| makeresults count=1
| eval json_data="{\"data\": {\"a\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
| append [ makeresults count=1
          | eval json_data="{\"data\": {\"b\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
        ]
| append [ makeresults count=1
          | eval json_data="{\"data\": {\"c\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
        ]
| append [ makeresults count=1
          | eval json_data="{\"data\": {\"d\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
        ]
| spath input=json_data
| fields - json_data
| transpose 0 column_name=field header_field=_time
| eval field=mvindex(split(field,"."),0).".".mvindex(split(field,"."),2).".".mvindex(split(field,"."),3)
| transpose 0 header_field=field
| fields - column&lt;/LI-CODE&gt;</description>
      <pubDate>Fri, 02 Feb 2024 10:02:02 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676375#M231336</guid>
      <dc:creator>ITWhisperer</dc:creator>
      <dc:date>2024-02-02T10:02:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to use spath to read dynamic path</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676390#M231339</link>
      <description>&lt;P&gt;There is no syntax for this. With spath you have to either provide a precise path or not provide path at all so the whole source field (_raw by default) is parsed.&lt;/P&gt;&lt;P&gt;You can later do some magic based most probably on foreach and matching field name to a pattern but that's kinda ugly and not very efficient.&lt;/P&gt;&lt;P&gt;Anyway, it seems like a badly designed data schema because it looks as if you should rather have an array od objects instead of different objects. Conceptually - different objects are different types of entity so why would you want to treat them the same?&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 13:13:14 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676390#M231339</guid>
      <dc:creator>PickleRick</dc:creator>
      <dc:date>2024-02-02T13:13:14Z</dc:date>
    </item>
    <item>
      <title>Re: How to use spath to read dynamic path</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676445#M231360</link>
      <description>&lt;P&gt;You need to first extract data beyond the "dynamic" key. (Depending on semantics, I suspect that there is some data design improvement your developers could make so downstream users don't have to do this goaround.)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| spath input=json_data path=data output=beyond
| eval key = json_array_to_mv(json_keys(beyond))
| eval beyond = json_extract(beyond, key) ``` assuming there is only one top key ```
| spath input=beyond path=x
| spath input=beyond path=y&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The following is full emulation (I don't see the purpose of all the transposes)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| makeresults count=1
| eval json_data="{\"data\": {\"a\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
| append [ makeresults count=1
          | eval json_data="{\"data\": {\"b\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
        ]
| append [ makeresults count=1
          | eval json_data="{\"data\": {\"c\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
        ]
| append [ makeresults count=1
          | eval json_data="{\"data\": {\"d\": {\"x\": {\"mock_x_field\": \"value_x\"}, \"y\": {\"mock_y_field\": \"value_y\"}}}}"
        ]
| spath input=json_data path=data output=beyond
| eval key = json_array_to_mv(json_keys(beyond))
| eval beyond = json_extract(beyond, key)
| spath input=beyond path=x
| spath input=beyond path=y
| table json_data x y beyond&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;json_data&lt;/TD&gt;&lt;TD&gt;x&lt;/TD&gt;&lt;TD&gt;y&lt;/TD&gt;&lt;TD&gt;beyond&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;{"data": {"a": {"x": {"mock_x_field": "value_x"}, "y": {"mock_y_field": "value_y"}}}}&lt;/TD&gt;&lt;TD&gt;{"mock_x_field":"value_x"}&lt;/TD&gt;&lt;TD&gt;{"mock_y_field":"value_y"}&lt;/TD&gt;&lt;TD&gt;{"x":{"mock_x_field":"value_x"},"y":{"mock_y_field":"value_y"}}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;{"data": {"b": {"x": {"mock_x_field": "value_x"}, "y": {"mock_y_field": "value_y"}}}}&lt;/TD&gt;&lt;TD&gt;{"mock_x_field":"value_x"}&lt;/TD&gt;&lt;TD&gt;{"mock_y_field":"value_y"}&lt;/TD&gt;&lt;TD&gt;{"x":{"mock_x_field":"value_x"},"y":{"mock_y_field":"value_y"}}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;{"data": {"c": {"x": {"mock_x_field": "value_x"}, "y": {"mock_y_field": "value_y"}}}}&lt;/TD&gt;&lt;TD&gt;{"mock_x_field":"value_x"}&lt;/TD&gt;&lt;TD&gt;{"mock_y_field":"value_y"}&lt;/TD&gt;&lt;TD&gt;{"x":{"mock_x_field":"value_x"},"y":{"mock_y_field":"value_y"}}&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;{"data": {"d": {"x": {"mock_x_field": "value_x"}, "y": {"mock_y_field": "value_y"}}}}&lt;/TD&gt;&lt;TD&gt;{"mock_x_field":"value_x"}&lt;/TD&gt;&lt;TD&gt;{"mock_y_field":"value_y"}&lt;/TD&gt;&lt;TD&gt;{"x":{"mock_x_field":"value_x"},"y":{"mock_y_field":"value_y"}}&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Fri, 02 Feb 2024 22:50:21 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676445#M231360</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2024-02-02T22:50:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to use spath to read dynamic path</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676550#M231377</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/33901"&gt;@yuanliu&lt;/a&gt;&amp;nbsp; this is what I was looking for great !!&lt;/P&gt;</description>
      <pubDate>Mon, 05 Feb 2024 08:21:40 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676550#M231377</guid>
      <dc:creator>mayurkale471757</dc:creator>
      <dc:date>2024-02-05T08:21:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to use spath to read dynamic path</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676616#M231394</link>
      <description>&lt;P&gt;Note:&lt;BR /&gt;1) The spath command can be expensive, especially against large data sets&lt;BR /&gt;2) If all you need is to parse a string and get the values, consider regular expressions for json data also.&lt;/P&gt;&lt;P&gt;In the rex below, I named the a|b|c|d field "foo", in case it had value later on. If not, it doesn't need to be used&lt;/P&gt;&lt;LI-CODE lang="python"&gt;| makeresults ```creating dummy data based on the original question```
| eval json_data="{data: {a : {  x: {value_x}  y: {value_y}}} }" 
| append 
    [ makeresults
    | eval json_data="{data: {b : {  x: {value_x}  y: {value_y}}} }"
        ] 
| append 
    [ makeresults
    | eval json_data="{data: {c : {  x: {value_x}  y: {value_y}}} }"
        ] 
| append 
    [ makeresults
    | eval json_data="{data: {d : {  x: {value_x}  y: {value_y}}} }"
        ]
```ending the creation of dummy data```
| rex field=json_data "{(?&amp;lt;foo&amp;gt;\w+)\s:\s{\s\sx:\s{(?&amp;lt;x_value&amp;gt;.+)}\s\sy:\s{(?&amp;lt;y_value&amp;gt;.+)}}}" ```parse strings using a regular expression```
| table json_data x_value y_value ```display results of regular expression in a table```&lt;/LI-CODE&gt;&lt;P&gt;Results in:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="efavreau_1-1707149703942.png" style="width: 999px;"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/29243iDF6C31FBD726134C/image-size/large?v=v2&amp;amp;px=999" role="button" title="efavreau_1-1707149703942.png" alt="efavreau_1-1707149703942.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Feb 2024 16:18:11 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-use-spath-to-read-dynamic-path/m-p/676616#M231394</guid>
      <dc:creator>efavreau</dc:creator>
      <dc:date>2024-02-05T16:18:11Z</dc:date>
    </item>
  </channel>
</rss>

