title: Iterate over a large JSON Array with JSONPath
body: <p>I have a simple <code>Java</code> app that needs to traverse a large <code>JSON</code> array (with around 20K items), and within each array, I parse a sub-array. Each item looks like this:</p>
  
  <pre><code>{"index":0,"f1":[2,16,16,16,16,16,32,16],"f2":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"startTime":0.0}
  </code></pre>
  
  <p>I am using <code>JSONPath</code> to iterate over each item. What I do is first I read the length, and simply iterate over the whole array. But it is very slow (like, 1 item per second).</p>
  
  <pre><code>int length = JsonPath.read(response, "$.result.length()");
  for (int i = 0; i &lt; length; i++) {
      double start_time = JsonPath.read(response, "$.result["+i+"].startTime");
      ArrayList&lt;Integer&gt; f1= JsonPath.read(response, "$.result["+i+"].f1");
      //...other things
  }
  </code></pre>
  
  <p>Is there a way to optimise it?</p>