Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-945

New property (wrap as array) in avro2json converter

    XMLWordPrintableJSON

    Details

      Description

      Create a new property (wrap as array) in ConvertAvroToJson, which determines how stream of records is exposed: either as a sequence of single Objects (false), writing every Object to a new line, or as an array of Objects. Default value is true, meaning that the Avro content is exposed as a sequence of root-level Object entries. False value is useful, when you want to write your records as single instances to a target component (e.g. Kafka).

      Let's assume you have an Avro content as stream of events:

      ({"id":"user1", "item":"itemX", "action": "buy"}, {"id":"user2", "item":"itemY", "action": "like"})

      If wrap as array is false, the converter will expose the records as sequence of single JSON objects:

      {"id":"user1", "item":"itemX", "action": "buy"}
      {"id":"user2", "item":"itemY", "action": "like"}
      ...
      {"id":"userN", ...}
      

      Please bear in mind, that the final output is not a valid JSON content. You can then forward this content e.g. to Kafka, where every record will be a single Kafka message.

      If wrap as array is true, the output looks like this:

      [{"id":"user1", "item":"itemX", "action": "buy"},{"id":"user2", "item":"itemY", "action": "like"},...,{"id":"userN", ...}]
      

      It is useful when you want to convert your Avro content to a valid JSON array.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                tkurc Tony Kurc
                Reporter:
                joemeszaros Joe Mészáros
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: