title: How to traverse list of objects with multiple fields with circe optics
body: <p>I'm looking for a most elegant way to traverse a list of objects with multiple fields in Json with circe optics.</p>
  <p>Let's say we have this sort of JSON:</p>
  <pre><code>[
    {
      &quot;key1&quot;: &quot;one&quot;,
      &quot;key2&quot;: &quot;two&quot;
    },
    {
      &quot;key1&quot;: &quot;three&quot;,
      &quot;key2&quot;: &quot;four&quot;
    }
  ]
  </code></pre>
  <p>and we have a case class <code>case class Entity(key1: String, key2: String)</code></p>
  <p>So I want to find the most elegant and sleek way to traverse this JSON and create a list of case objects in the end.</p>
  <p>I know that I can use each: <code>root.each.key1.string.getAll(json)</code>, but how would I build a lens that will give me a traversable tuple (?) or something that I could put into for comprehension. I can probably combine lenses somehow.</p>
  <p>There's already a question like that  (<a href="https://stackoverflow.com/questions/49626654/how-to-parse-un-array-of-object-with-circe">how to parse un Array of object with Circe</a>) but it has only one field in each object.</p>