<?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>question Re: How to get pretty array of JSON as groovy Script Output in NiFi in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/How-to-get-pretty-array-of-JSON-as-groovy-Script-Output-in/m-p/358793#M237935</link>
    <description>&lt;P&gt;Hi Team, can you please help.&amp;nbsp; &amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 02 Dec 2022 06:23:23 GMT</pubDate>
    <dc:creator>Techie123</dc:creator>
    <dc:date>2022-12-02T06:23:23Z</dc:date>
    <item>
      <title>How to get pretty array of JSON as groovy Script Output in NiFi</title>
      <link>https://community.cloudera.com/t5/Support-Questions/How-to-get-pretty-array-of-JSON-as-groovy-Script-Output-in/m-p/358704#M237917</link>
      <description>&lt;P&gt;I am getting below input flow file:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Input:&lt;/P&gt;&lt;P&gt;[ {&lt;BR /&gt;"original" : {&lt;BR /&gt;"Id" : "100008",&lt;BR /&gt;"Date" : "2022-09-22"&lt;BR /&gt;},&lt;BR /&gt;"enrichment" : {&lt;BR /&gt;"Record" : "Record 11",&lt;BR /&gt;"Description" : "Invalid values for Id or Date"&lt;BR /&gt;}&lt;BR /&gt;}, {&lt;BR /&gt;"original" : {&lt;BR /&gt;"Id" : "100009",&lt;BR /&gt;"Date" : "2022-09-02"&lt;BR /&gt;},&lt;BR /&gt;"enrichment" : {&lt;BR /&gt;"Record" : "Record 2",&lt;BR /&gt;"Description" : "Invalid values for Id or Date"&lt;BR /&gt;}&lt;BR /&gt;} ]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Expected output:&lt;/P&gt;&lt;P&gt;[&lt;BR /&gt;{&lt;BR /&gt;"original" : {&lt;BR /&gt;"Id" : "100009",&lt;BR /&gt;"Date" : "2022-09-02"&lt;BR /&gt;},&lt;BR /&gt;"enrichment" : {&lt;BR /&gt;"Record" : "Record 2",&lt;BR /&gt;"Description" : "Invalid values for Id or Date"&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and Output I am getting is the below using Groovy script:&lt;/P&gt;&lt;P&gt;[&lt;BR /&gt;"{\"original\":{\"Id\":\"100009\",\"Date\":\"2022-09-02\"},\"enrichment\":{\"Record\":\"Record 2\",\"Description\":\"Invalid values for Id or Date\"}}"&lt;BR /&gt;]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Groovy Script:&lt;/P&gt;&lt;P&gt;import org.apache.commons.io.IOUtils&lt;BR /&gt;import java.nio.charset.StandardCharsets&lt;BR /&gt;import groovy.json.*&lt;BR /&gt;import java.util.ArrayList&lt;/P&gt;&lt;P&gt;def flowFile = session.get()&lt;BR /&gt;if(!flowFile) return&lt;/P&gt;&lt;P&gt;try {&lt;BR /&gt;flowFile = session.write(flowFile,&lt;BR /&gt;{ inputStream, outputStream -&amp;gt;&lt;BR /&gt;def text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)&lt;BR /&gt;def obj = new JsonSlurper().parseText(text)&lt;BR /&gt;def final1 = []&lt;BR /&gt;int j = obj.text.size()&lt;BR /&gt;for (int i=0;i&amp;lt;j;i++){&lt;BR /&gt;index = i+1&lt;BR /&gt;def rec = 'Record ' + index&lt;BR /&gt;if (rec in obj.enrichment.Record){&lt;BR /&gt;&lt;BR /&gt;final1.add(JsonOutput.toJson(obj[i]))&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;response1 = JsonOutput.toJson(final1)&lt;BR /&gt;outputStream.write(response1.getBytes(StandardCharsets.UTF_8))&lt;BR /&gt;} as StreamCallback)&lt;BR /&gt;&lt;BR /&gt;session.transfer(flowFile, REL_SUCCESS)&lt;/P&gt;&lt;P&gt;} catch(Exception e) {&lt;BR /&gt;log.error('Error during JSON operations', e)&lt;BR /&gt;session.transfer(flowFile, REL_FAILURE)&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can you please help to can I get the formatted array of json output of this groovy Script. I am new to groovy&lt;/P&gt;</description>
      <pubDate>Thu, 01 Dec 2022 08:49:17 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/How-to-get-pretty-array-of-JSON-as-groovy-Script-Output-in/m-p/358704#M237917</guid>
      <dc:creator>Techie123</dc:creator>
      <dc:date>2022-12-01T08:49:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to get pretty array of JSON as groovy Script Output in NiFi</title>
      <link>https://community.cloudera.com/t5/Support-Questions/How-to-get-pretty-array-of-JSON-as-groovy-Script-Output-in/m-p/358793#M237935</link>
      <description>&lt;P&gt;Hi Team, can you please help.&amp;nbsp; &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Dec 2022 06:23:23 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/How-to-get-pretty-array-of-JSON-as-groovy-Script-Output-in/m-p/358793#M237935</guid>
      <dc:creator>Techie123</dc:creator>
      <dc:date>2022-12-02T06:23:23Z</dc:date>
    </item>
    <item>
      <title>Re: How to get pretty array of JSON as groovy Script Output in NiFi</title>
      <link>https://community.cloudera.com/t5/Support-Questions/How-to-get-pretty-array-of-JSON-as-groovy-Script-Output-in/m-p/358801#M237938</link>
      <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/98568"&gt;@Techie123&lt;/a&gt;&amp;nbsp;maybe you can beautify it a bit &lt;span class="lia-unicode-emoji" title=":grinning_face_with_smiling_eyes:"&gt;😄&lt;/span&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="java"&gt;import org.apache.commons.io.IOUtils
import java.nio.charset.StandardCharsets
import groovy.json.*
  import java.util.ArrayList

def flowFile = session.get()
if (!flowFile) return

try {
  flowFile = session.write(flowFile, {
      inputStream,
      outputStream -&amp;gt;
      def text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
      def content = new JsonSlurper().parseText(text)

      for (int i = content.size() - 1; i &amp;gt;= 0; --i) {
        int objNo = i
        int recNo = i + 1
        def rec = 'Record ' + recNo

        if (rec != content[objNo].enrichment.Record) {
          content.remove(content[objNo])
        }
      }
      def jsonOutput = JsonOutput.toJson(content)
      outputStream.write(JsonOutput.prettyPrint(jsonOutput).getBytes(StandardCharsets.UTF_8))
    }
    as StreamCallback)

  session.transfer(flowFile, REL_SUCCESS)

} catch (Exception e) {
  log.error('Error during JSON operations', e)
  session.transfer(flowFile, REL_FAILURE)
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Dec 2022 10:38:48 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/How-to-get-pretty-array-of-JSON-as-groovy-Script-Output-in/m-p/358801#M237938</guid>
      <dc:creator>Faerballert</dc:creator>
      <dc:date>2022-12-02T10:38:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to get pretty array of JSON as groovy Script Output in NiFi</title>
      <link>https://community.cloudera.com/t5/Support-Questions/How-to-get-pretty-array-of-JSON-as-groovy-Script-Output-in/m-p/358968#M237987</link>
      <description>&lt;P&gt;Thank you so much&amp;nbsp;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/68571"&gt;@Faerballert&lt;/a&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Dec 2022 12:10:46 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/How-to-get-pretty-array-of-JSON-as-groovy-Script-Output-in/m-p/358968#M237987</guid>
      <dc:creator>Techie123</dc:creator>
      <dc:date>2022-12-06T12:10:46Z</dc:date>
    </item>
  </channel>
</rss>

