<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Json on SNow adventures</title>
    <link>https://www.snow-adventures.com/tags/json/</link>
    <description>Recent content in Json on SNow adventures</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© Samuel Meylan - 2020</copyright>
    <lastBuildDate>Tue, 18 Feb 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www.snow-adventures.com/tags/json/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>jsonPath in ServiceNow with GlideJsonPath</title>
      <link>https://www.snow-adventures.com/posts/jsonpath-in-servicenow-with-glidejsonpath/</link>
      <pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate>
      
      <guid>https://www.snow-adventures.com/posts/jsonpath-in-servicenow-with-glidejsonpath/</guid>
      <description>This article explain how the JsonPath is supported in ServiceNow and how to use it with GlideJsonPath </description>
      <content:encoded><![CDATA[<h1 id="introduction">Introduction</h1>
<p>Since the Vancouver release, there is a new API <code>GlideJsonPath</code><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> that allows to query a JSON string with <em>jsonPath</em><sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>.</p>
<p>The <em>jsonPath</em> can be viewed as the JSON equivalent of the XPath for XML. It allows to perform queries like <code>$.library.bools.*.title</code> for example. <em>Jsonpath</em> is offically a RFC since february 2024<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup></p>
<p>I suspect the under the hood, it use the implementation JsonPath<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>.</p>
<h1 id="usage-of-the--glidejsonpath">Usage of the  <code>GlideJsonPath</code></h1>
<p>The official documentation<sup id="fnref1:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> is very succint and there is a couple of extra information that can help:</p>
<ul>
<li>the <code>GlideJsonPath</code> expect a <em>String</em>, not an object as parameter</li>
<li>the <code>read</code> function seems to return an <em>array</em> of <em>JavaObject</em>, which are not the same as the javascript objects. It might need some kind of converstion before being able to use it.</li>
</ul>
<p>To ease the usage, I suggest to use a function like this one, that accept an Object as parameter and return also a <strong>javascript</strong> Object:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-javascript" data-lang="javascript"><span class="line"><span class="cl"><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm">	@name executeJSONpath
</span></span></span><span class="line"><span class="cl"><span class="cm">	@description execute the JSON path on the given object and return the result 
</span></span></span><span class="line"><span class="cl"><span class="cm">	@param {Object} [obj] - Object on which to execute the json path
</span></span></span><span class="line"><span class="cl"><span class="cm">	@param {String} [jsonPath] - Json path to use for the query
</span></span></span><span class="line"><span class="cl"><span class="cm">	@return {Object} Object after applying the jsonPath read
</span></span></span><span class="line"><span class="cl"><span class="cm">*/</span>
</span></span><span class="line"><span class="cl"><span class="kd">function</span> <span class="nx">executeJSONpath</span> <span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="nx">path</span><span class="p">){</span>
</span></span><span class="line"><span class="cl">  <span class="k">try</span><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="c1">// Convert the object to a JSON string
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="kd">var</span> <span class="nx">jsonString</span> <span class="o">=</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">obj</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="c1">// call and retrieve the result from GlideJsonPath
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="kd">var</span> <span class="nx">gjp</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">GlideJsonPath</span><span class="p">(</span><span class="nx">jsonString</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="kd">var</span> <span class="nx">gjpResult</span> <span class="o">=</span> <span class="nx">gjp</span><span class="p">.</span><span class="nx">read</span><span class="p">(</span><span class="nx">path</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="nx">gjpResult</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">  <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">exception</span><span class="p">){</span>
</span></span><span class="line"><span class="cl">    <span class="nx">gs</span><span class="p">.</span><span class="nx">error</span><span class="p">(</span><span class="s2">&#34;Error in function &#39;executeJSONpath&#39; : &#34;</span> <span class="o">+</span> <span class="nx">exception</span> <span class="o">+</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">exception</span><span class="p">));</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><h2 id="json-path-syntax">JSON path syntax</h2>
<p>The JSON path syntax can be summarized as follow:</p>
<h2 id="dot-notation-or-bracket-notation">dot-notation or bracket-notation</h2>
<p>the JsonPath can use either a dot-notation, like <code>$.store.book[0].title</code> or a bracker-notation <code>$['store']['book'][0]['title']</code></p>
<p>It can also use a mix of both, like this example: <code>$['store']['book'][0].title</code></p>
<p>Also in the bracket notation, it is possibe to specify mutliple attribute to retrieve, for example: `$[&lsquo;store&rsquo;][&lsquo;book&rsquo;][0].[&ldquo;title&rdquo;, &ldquo;author&rdquo;]</p>
<h2 id="elements">Elements</h2>
<p>The JsonPath can use the following elements <sup id="fnref1:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup><sup id="fnref1:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup><sup id="fnref1:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>:</p>
<ul>
<li><code>$</code>: The root element to query. This starts all path expressions.</li>
<li><code>@</code>: The current node being processed by a filter predicate.</li>
<li><code>*</code>: Wildcard. Available anywhere a name or numeric are required.</li>
<li><code>..</code>: Deep scan. Available anywhere a name is required.</li>
<li><code>.&lt;name&gt;</code>: Dot-notated child</li>
<li><code>['&lt;name&gt;' (, '&lt;name&gt;')]</code>: Bracket-notated child or children</li>
<li><code>[&lt;number&gt; (, &lt;number&gt;)]</code>: Array index or indexes</li>
<li><code>[start:end]</code>: Array slice operator</li>
<li><code>[?(&lt;expression&gt;)]</code>: Filter expression. Expression must evaluate to a boolean value.</li>
</ul>
<h2 id="functions">Functions</h2>
<p>The specification gives several functions (<code>min()</code>, <code>max()</code>, &hellip;), but unfortunately it seems thay are not supported by the ServiceNow implementation.</p>
<h2 id="operators">Operators</h2>
<p>For use in the expression, we can use the &ldquo;classic&rdquo; operator like &ldquo;==&rdquo;, &ldquo;!=&rdquo;, &ldquo;&gt;&rdquo;, &ldquo;=&gt;&rdquo;, etc. It also supports:</p>
<ul>
<li><code>=~</code>: left matches regular expression [?(@.name =~ /foo.*?/i)]</li>
<li><code>in</code>: left exists in right [?(@.size in [&lsquo;S&rsquo;, &lsquo;M&rsquo;])]</li>
<li><code>nin</code>: left does not exists in right</li>
<li><code>subsetof</code>: left is a subset of right [?(@.sizes subsetof [&lsquo;S&rsquo;, &lsquo;M&rsquo;, &lsquo;L&rsquo;])]</li>
<li><code>anyof</code>: left has an intersection with right [?(@.sizes anyof [&lsquo;M&rsquo;, &lsquo;L&rsquo;])]</li>
<li><code>noneof</code>: left has no intersection with right [?(@.sizes noneof [&lsquo;M&rsquo;, &lsquo;L&rsquo;])]</li>
<li><code>size</code>: size of left (array or string) should match right</li>
<li><code>empty</code>: left (array or string) should be empty</li>
</ul>
<h2 id="limitations">Limitations</h2>
<ul>
<li><strong>functions</strong>: functions are not supported, as stated above</li>
<li><strong>unique values</strong>: There is not way to ask for unique values: there can be duplicated entries (for example when listing all categories)</li>
</ul>
<h1 id="example-of-json-path">Example of JSON path</h1>
<p>This table show the result of various jsonPath from the GitHub JsonPath documentation<sup id="fnref2:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>.</p>
<p>When creating a new jsonPath, you can use this online evaluator<sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup> to test it</p>
<table>
  <thead>
      <tr>
          <th>Description</th>
          <th>JsonPath</th>
          <th>Result</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>The authors of all books</td>
          <td><code>$.store.book[*].author</code></td>
          <td>[</br> &ldquo;Nigel Rees&rdquo;,</br> &ldquo;Evelyn Waugh&rdquo;,</br> &ldquo;Herman Melville&rdquo;,</br> &ldquo;J. R. R. Tolkien&rdquo;</br>]</td>
      </tr>
      <tr>
          <td>The authors and category of all books</td>
          <td><code>$.store.book[*].[&lsquo;author&rsquo;,&rsquo;title&rsquo;]</code></td>
          <td>[</br> {</br>  &ldquo;author&rdquo;: &ldquo;Nigel Rees&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sayings of the Century&rdquo;</br> },</br> {</br>  &ldquo;author&rdquo;: &ldquo;Evelyn Waugh&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sword of Honour&rdquo;</br> },</br> {</br>  &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;</br> },</br> {</br>  &ldquo;author&rdquo;: &ldquo;J. R. R. Tolkien&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;The Lord of the Rings&rdquo;</br> }</br>]</td>
      </tr>
      <tr>
          <td>Title of first book, mixing dot and bracket</td>
          <td><code>$[&lsquo;store&rsquo;][&lsquo;book&rsquo;][0].title</code></td>
          <td>[</br> &ldquo;Sayings of the Century&rdquo;</br>]</td>
      </tr>
      <tr>
          <td>All authors</td>
          <td><code>$..author</code></td>
          <td>[</br> &ldquo;Nigel Rees&rdquo;,</br> &ldquo;Evelyn Waugh&rdquo;,</br> &ldquo;Herman Melville&rdquo;,</br> &ldquo;J. R. R. Tolkien&rdquo;</br>]</td>
      </tr>
      <tr>
          <td>All things, both books and bicycles</td>
          <td><code>$.store.*</code></td>
          <td>[</br> [</br>  {</br>   &ldquo;category&rdquo;: &ldquo;reference&rdquo;,</br>   &ldquo;author&rdquo;: &ldquo;Nigel Rees&rdquo;,</br>   &ldquo;title&rdquo;: &ldquo;Sayings of the Century&rdquo;,</br>   &ldquo;price&rdquo;: 8.95</br>  },</br>  {</br>   &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>   &ldquo;author&rdquo;: &ldquo;Evelyn Waugh&rdquo;,</br>   &ldquo;title&rdquo;: &ldquo;Sword of Honour&rdquo;,</br>   &ldquo;price&rdquo;: 12.99</br>  },</br>  {</br>   &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>   &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>   &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;,</br>   &ldquo;isbn&rdquo;: &ldquo;0-553-21311-3&rdquo;,</br>   &ldquo;price&rdquo;: 8.99</br>  },</br>  {</br>   &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>   &ldquo;author&rdquo;: &ldquo;J. R. R. Tolkien&rdquo;,</br>   &ldquo;title&rdquo;: &ldquo;The Lord of the Rings&rdquo;,</br>   &ldquo;isbn&rdquo;: &ldquo;0-395-19395-8&rdquo;,</br>   &ldquo;price&rdquo;: 22.99</br>  }</br> ],</br> {</br>  &ldquo;color&rdquo;: &ldquo;red&rdquo;,</br>  &ldquo;price&rdquo;: 19.95</br> }</br>]</td>
      </tr>
      <tr>
          <td>The price of everything</td>
          <td><code>$.store..price</code></td>
          <td>[</br> 8.95,</br> 12.99,</br> 8.99,</br> 22.99,</br> 19.95</br>]</td>
      </tr>
      <tr>
          <td>The third book</td>
          <td><code>$..book[2]</code></td>
          <td>[</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-553-21311-3&rdquo;,</br>  &ldquo;price&rdquo;: 8.99</br> }</br>]</td>
      </tr>
      <tr>
          <td>The second to last book</td>
          <td><code>$..book[-2]</code></td>
          <td>[</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-553-21311-3&rdquo;,</br>  &ldquo;price&rdquo;: 8.99</br> }</br>]</td>
      </tr>
      <tr>
          <td>The first two books</td>
          <td><code>$..book[0,1]</code></td>
          <td>[</br> {</br>  &ldquo;category&rdquo;: &ldquo;reference&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Nigel Rees&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sayings of the Century&rdquo;,</br>  &ldquo;price&rdquo;: 8.95</br> },</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Evelyn Waugh&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sword of Honour&rdquo;,</br>  &ldquo;price&rdquo;: 12.99</br> }</br>]</td>
      </tr>
      <tr>
          <td>All books from index 0 (inclusive) until index 2 (exclusive)</td>
          <td><code>$..book[:2]</code></td>
          <td>[</br> {</br>  &ldquo;category&rdquo;: &ldquo;reference&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Nigel Rees&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sayings of the Century&rdquo;,</br>  &ldquo;price&rdquo;: 8.95</br> },</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Evelyn Waugh&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sword of Honour&rdquo;,</br>  &ldquo;price&rdquo;: 12.99</br> }</br>]</td>
      </tr>
      <tr>
          <td>All books from index 1 (inclusive) until index 2 (exclusive)</td>
          <td><code>$..book[1:2]</code></td>
          <td>[</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Evelyn Waugh&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sword of Honour&rdquo;,</br>  &ldquo;price&rdquo;: 12.99</br> }</br>]</td>
      </tr>
      <tr>
          <td>Last two books</td>
          <td><code>$..book[-2:]</code></td>
          <td>[</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-553-21311-3&rdquo;,</br>  &ldquo;price&rdquo;: 8.99</br> },</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;J. R. R. Tolkien&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;The Lord of the Rings&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-395-19395-8&rdquo;,</br>  &ldquo;price&rdquo;: 22.99</br> }</br>]</td>
      </tr>
      <tr>
          <td>All books from index 2 (inclusive) to last</td>
          <td><code>$..book[2:]</code></td>
          <td>[</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-553-21311-3&rdquo;,</br>  &ldquo;price&rdquo;: 8.99</br> },</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;J. R. R. Tolkien&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;The Lord of the Rings&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-395-19395-8&rdquo;,</br>  &ldquo;price&rdquo;: 22.99</br> }</br>]</td>
      </tr>
      <tr>
          <td>All books with an ISBN number</td>
          <td><code>$..book[?(@.isbn)]</code></td>
          <td>[</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-553-21311-3&rdquo;,</br>  &ldquo;price&rdquo;: 8.99</br> },</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;J. R. R. Tolkien&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;The Lord of the Rings&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-395-19395-8&rdquo;,</br>  &ldquo;price&rdquo;: 22.99</br> }</br>]</td>
      </tr>
      <tr>
          <td>All books in store cheaper than 10</td>
          <td><code>$.store.book[?(@.price &lt; 10)]</code></td>
          <td>[</br> {</br>  &ldquo;category&rdquo;: &ldquo;reference&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Nigel Rees&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sayings of the Century&rdquo;,</br>  &ldquo;price&rdquo;: 8.95</br> },</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-553-21311-3&rdquo;,</br>  &ldquo;price&rdquo;: 8.99</br> }</br>]</td>
      </tr>
      <tr>
          <td>All books in store that are not &rsquo;expensive&rsquo;</td>
          <td><code>$..book[?(@.price &lt;= $[&rsquo;expensive&rsquo;])]</code></td>
          <td>[</br> {</br>  &ldquo;category&rdquo;: &ldquo;reference&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Nigel Rees&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sayings of the Century&rdquo;,</br>  &ldquo;price&rdquo;: 8.95</br> },</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-553-21311-3&rdquo;,</br>  &ldquo;price&rdquo;: 8.99</br> }</br>]</td>
      </tr>
      <tr>
          <td>All books matching regex (ignore case)</td>
          <td><code>$..book[?(@.author =~ /.*REES/i)]</code></td>
          <td>[</br> {</br>  &ldquo;category&rdquo;: &ldquo;reference&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Nigel Rees&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sayings of the Century&rdquo;,</br>  &ldquo;price&rdquo;: 8.95</br> }</br>]</td>
      </tr>
      <tr>
          <td>Give me everything</td>
          <td><code>$..*</code></td>
          <td>[</br> {</br>  &ldquo;book&rdquo;: [</br>   {</br>    &ldquo;category&rdquo;: &ldquo;reference&rdquo;,</br>    &ldquo;author&rdquo;: &ldquo;Nigel Rees&rdquo;,</br>    &ldquo;title&rdquo;: &ldquo;Sayings of the Century&rdquo;,</br>    &ldquo;price&rdquo;: 8.95</br>   },</br>   {</br>    &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>    &ldquo;author&rdquo;: &ldquo;Evelyn Waugh&rdquo;,</br>    &ldquo;title&rdquo;: &ldquo;Sword of Honour&rdquo;,</br>    &ldquo;price&rdquo;: 12.99</br>   },</br>   {</br>    &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>    &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>    &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;,</br>    &ldquo;isbn&rdquo;: &ldquo;0-553-21311-3&rdquo;,</br>    &ldquo;price&rdquo;: 8.99</br>   },</br>   {</br>    &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>    &ldquo;author&rdquo;: &ldquo;J. R. R. Tolkien&rdquo;,</br>    &ldquo;title&rdquo;: &ldquo;The Lord of the Rings&rdquo;,</br>    &ldquo;isbn&rdquo;: &ldquo;0-395-19395-8&rdquo;,</br>    &ldquo;price&rdquo;: 22.99</br>   }</br>  ],</br>  &ldquo;bicycle&rdquo;: {</br>   &ldquo;color&rdquo;: &ldquo;red&rdquo;,</br>   &ldquo;price&rdquo;: 19.95</br>  }</br> },</br> 10,</br> [</br>  {</br>   &ldquo;category&rdquo;: &ldquo;reference&rdquo;,</br>   &ldquo;author&rdquo;: &ldquo;Nigel Rees&rdquo;,</br>   &ldquo;title&rdquo;: &ldquo;Sayings of the Century&rdquo;,</br>   &ldquo;price&rdquo;: 8.95</br>  },</br>  {</br>   &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>   &ldquo;author&rdquo;: &ldquo;Evelyn Waugh&rdquo;,</br>   &ldquo;title&rdquo;: &ldquo;Sword of Honour&rdquo;,</br>   &ldquo;price&rdquo;: 12.99</br>  },</br>  {</br>   &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>   &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>   &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;,</br>   &ldquo;isbn&rdquo;: &ldquo;0-553-21311-3&rdquo;,</br>   &ldquo;price&rdquo;: 8.99</br>  },</br>  {</br>   &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>   &ldquo;author&rdquo;: &ldquo;J. R. R. Tolkien&rdquo;,</br>   &ldquo;title&rdquo;: &ldquo;The Lord of the Rings&rdquo;,</br>   &ldquo;isbn&rdquo;: &ldquo;0-395-19395-8&rdquo;,</br>   &ldquo;price&rdquo;: 22.99</br>  }</br> ],</br> {</br>  &ldquo;color&rdquo;: &ldquo;red&rdquo;,</br>  &ldquo;price&rdquo;: 19.95</br> },</br> {</br>  &ldquo;category&rdquo;: &ldquo;reference&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Nigel Rees&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sayings of the Century&rdquo;,</br>  &ldquo;price&rdquo;: 8.95</br> },</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Evelyn Waugh&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Sword of Honour&rdquo;,</br>  &ldquo;price&rdquo;: 12.99</br> },</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;Herman Melville&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;Moby Dick&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-553-21311-3&rdquo;,</br>  &ldquo;price&rdquo;: 8.99</br> },</br> {</br>  &ldquo;category&rdquo;: &ldquo;fiction&rdquo;,</br>  &ldquo;author&rdquo;: &ldquo;J. R. R. Tolkien&rdquo;,</br>  &ldquo;title&rdquo;: &ldquo;The Lord of the Rings&rdquo;,</br>  &ldquo;isbn&rdquo;: &ldquo;0-395-19395-8&rdquo;,</br>  &ldquo;price&rdquo;: 22.99</br> },</br> &ldquo;reference&rdquo;,</br> &ldquo;Nigel Rees&rdquo;,</br> &ldquo;Sayings of the Century&rdquo;,</br> 8.95,</br> &ldquo;fiction&rdquo;,</br> &ldquo;Evelyn Waugh&rdquo;,</br> &ldquo;Sword of Honour&rdquo;,</br> 12.99,</br> &ldquo;fiction&rdquo;,</br> &ldquo;Herman Melville&rdquo;,</br> &ldquo;Moby Dick&rdquo;,</br> &ldquo;0-553-21311-3&rdquo;,</br> 8.99,</br> &ldquo;fiction&rdquo;,</br> &ldquo;J. R. R. Tolkien&rdquo;,</br> &ldquo;The Lord of the Rings&rdquo;,</br> &ldquo;0-395-19395-8&rdquo;,</br> 22.99,</br> &ldquo;red&rdquo;,</br> 19.95</br>]</td>
      </tr>
  </tbody>
</table>
<h2 id="sample-json">Sample JSON</h2>
<p>Here is the sample JSON used for the tests:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;store&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="nt">&#34;book&#34;</span><span class="p">:</span> <span class="p">[</span>
</span></span><span class="line"><span class="cl">            <span class="p">{</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;category&#34;</span><span class="p">:</span> <span class="s2">&#34;reference&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;author&#34;</span><span class="p">:</span> <span class="s2">&#34;Nigel Rees&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;title&#34;</span><span class="p">:</span> <span class="s2">&#34;Sayings of the Century&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;price&#34;</span><span class="p">:</span> <span class="mf">8.95</span>
</span></span><span class="line"><span class="cl">            <span class="p">},</span>
</span></span><span class="line"><span class="cl">            <span class="p">{</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;category&#34;</span><span class="p">:</span> <span class="s2">&#34;fiction&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;author&#34;</span><span class="p">:</span> <span class="s2">&#34;Evelyn Waugh&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;title&#34;</span><span class="p">:</span> <span class="s2">&#34;Sword of Honour&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;price&#34;</span><span class="p">:</span> <span class="mf">12.99</span>
</span></span><span class="line"><span class="cl">            <span class="p">},</span>
</span></span><span class="line"><span class="cl">            <span class="p">{</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;category&#34;</span><span class="p">:</span> <span class="s2">&#34;fiction&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;author&#34;</span><span class="p">:</span> <span class="s2">&#34;Herman Melville&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;title&#34;</span><span class="p">:</span> <span class="s2">&#34;Moby Dick&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;isbn&#34;</span><span class="p">:</span> <span class="s2">&#34;0-553-21311-3&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;price&#34;</span><span class="p">:</span> <span class="mf">8.99</span>
</span></span><span class="line"><span class="cl">            <span class="p">},</span>
</span></span><span class="line"><span class="cl">            <span class="p">{</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;category&#34;</span><span class="p">:</span> <span class="s2">&#34;fiction&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;author&#34;</span><span class="p">:</span> <span class="s2">&#34;J. R. R. Tolkien&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;title&#34;</span><span class="p">:</span> <span class="s2">&#34;The Lord of the Rings&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;isbn&#34;</span><span class="p">:</span> <span class="s2">&#34;0-395-19395-8&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">                <span class="nt">&#34;price&#34;</span><span class="p">:</span> <span class="mf">22.99</span>
</span></span><span class="line"><span class="cl">            <span class="p">}</span>
</span></span><span class="line"><span class="cl">        <span class="p">],</span>
</span></span><span class="line"><span class="cl">        <span class="nt">&#34;bicycle&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">            <span class="nt">&#34;color&#34;</span><span class="p">:</span> <span class="s2">&#34;red&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">            <span class="nt">&#34;price&#34;</span><span class="p">:</span> <span class="mf">19.95</span>
</span></span><span class="line"><span class="cl">        <span class="p">}</span>
</span></span><span class="line"><span class="cl">    <span class="p">},</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;expensive&#34;</span><span class="p">:</span> <span class="mi">10</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><hr>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><a href="https://developer.servicenow.com/dev.do#!/reference/api/washingtondc/server_legacy/GlideJsonPathAPI#GlideJsonPath-GlideJsonPath_S?navFilter=jsonpath">GlideJsonPath | ServiceNow Developers</a>&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref1:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p><a href="https://restfulapi.net/json-jsonpath/">JSON with JSONPath</a>&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref1:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p><a href="https://datatracker.ietf.org/doc/rfc9535/">RFC 9535 - JSONPath: Query Expressions for JSON</a>&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref1:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p><a href="https://github.com/json-path/JsonPath">GitHub - json-path/JsonPath: Java JsonPath implementation</a>&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref1:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a>&#160;<a href="#fnref2:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p><a href="https://jsonpath.com/">JSONPath Online Evaluator</a>&#160;<a href="#fnref:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>]]></content:encoded>
    </item>
    
  </channel>
</rss>
