Description

The JSONFileReceiver receives data from a given GenRocket Domain and writes the data out to a file in JSON format.

Note: This particular JSON Receiver does not allow for nested elements. To generate nested JSON, assign the SegmentDataCreatorReceiver to each Domain and then assign the JSONSegmentMergeReceiver to a Merge Domain. 


In This Article


Receiver Parameters

The JSONFileReceiver requires that the following parameters are defined. Items with an asterisk * are required.

  • path* - Defines the location to store the newly generated JSON output file.
  • subDir - Defines the subdirectory path under the output directory path to store the output file. 
  • fileName* - Defines the name of the output file.
  • rootElementName - Defines the root element of the JSON structure.
  • alwaysArray - If "true", then it will create a JSON array irrespective of the number of records in a file is one or more. If "false:, it will create a JSON array only if the number of records is more than one. Otherwise, it will create a JSON object. The default value is false. 


Receiver Attribute Property Keys

The Receiver defines three property keys that can be modified on any of its associated Domain Attributes:

  • columnName - Defines the column name as it will be output in the delimited file header.
  • include - Determines if the Attribute will be included as a column in the output.
  • useQuotes - Determines if a value should be quoted. Sometimes a numeric value should be quoted (e.g., SSN).


File Config Tab

The File Config Tab is used to configure what event will trigger file creation and the naming configuration for generated files. Please click here for more information on using the File Config Tab.


The example below will create a new file for every 100 records. The naming for each file will look like Output-1.json, Output-2.json, Output-3.json, and so on.



Directory Config Tab

The Directory Config Tab is used to configure what event will trigger directory creation and the naming configuration for generated directories. Please click here for more information on using the Directory Config Tab.


In the example below, a subdirectory will be created for every 10 files. Each subdirectory's naming will look like AddressFiles1, AddressFiles2, AddressFiles3, and so on.


Use Case 1 - Generating a JSON Output File

This story demonstrates how to output data to a JSON file for a User Domain with the following Attributes:
 


Parameter Configuration

Only the required parameters (resourcePath and fileName) will be configured for this example. The parameter configuration will appear as shown below: 



Sample Output

The following is an example JSON output file for the User Domain in this use case.

Tex
{
  "users" : [
    {
      "id" : "1",
      "firstName" : "Alexa",
      "lastName" : "Topete",
      "middleInitial" : "G",
      "username" : "user1",
      "password" : "C4CA4238A0B923820DCC509A6F75849B",
      "phoneNumber" : "(308) 575-6657"
    },
    {
      "id" : "2",
      "firstName" : "Sibyl",
      "lastName" : "Epstein",
      "middleInitial" : "T",
      "username" : "user2",
      "password" : "C81E728D9D4C2F636F067F89CC14862C",
      "phoneNumber" : "(739) 798-3806"
    },
    {
      "id" : "3",
      "firstName" : "Norman",
      "lastName" : "Marini",
      "middleInitial" : "P",
      "username" : "user3",
      "password" : "ECCBC87E4B5CE2FE28308FD9F2A7BAF3",
      "phoneNumber" : "(616) 545-8376"
    }
  ]
}