...
Snap type:
Read
...
Description:
...
In this article
Table of Contents | ||||
---|---|---|---|---|
|
Overview
You can use this Snap to generate a JSON document for the next Snap in the
...
Pipeline.
...
- This Snap is often used at the beginning of a
...
- Pipeline to create a file.
...
[None]
...
- Ultra pipelines: May work in Ultra Pipelines.
- Spark mode: Not supported in Spark mode.
...
Accounts are not used with this Snap.
...
This Snap has at most one document error view and produces zero or more documents in the view.
If the Snap fails with an error in the JSON, an error document is sent to the error view containing the fields error, original, and templateOutput:
Code Block |
---|
{
"error": "Unexpected character ('{' (code 123)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name\n at [Source: JSON Generator; line: 4, column: 2]",
"original": null,
"templateOutput": "\n[\n {\n{\n }\n]\n\n\n"
} |
...
Settings
Label
...
Edit JSON
...
- This Snap does not need any Accounts.
Prerequisites
None.
Support for Ultra Pipelines
Works in Ultra Pipelines.
Limitations and Known Issues
The maximum size for a JSON file generated using this Snap is 16 MB.
Snap Input and Output
Input/Output | Type of View | Number of Views | Examples of Upstream and Downstream Snaps | Description |
---|---|---|---|---|
Input | Document |
|
| This Snap can have an upstream Snap that can pass a JSON document in output view. |
Output | Document |
|
| This Snap generates a document that contains the expected result along with the original JSON document (when Pass through is enabled). |
Snap Settings
Parameter Name | Data Type | Description | Default Value | Example | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Label | String |
| N/A | JSON Generator | ||||||||
Edit JSON | Apache Velocity template | Optional. Launches the JSON editor which allows you to define JSON. The editor loads an existing JSON document if defined previously. The editor lets you save JSON in SnapLogic's file system or import existing JSON documents from it |
...
. You can substitute the variables in the JSON with document values from the input view of the Snap.
|
...
|
...
Process array
...
You can customize the JSON file to:
Learn more: | Empty JSON file | File with JSON content | |
Process Array | Checkbox | Optional. The Process array property specifies whether or not the Component should take a root JSON array and |
---|
...
write each element of the array as a JSON document. |
...
Example: Selected
Default value: Selected
Clicking Edit JSON will launch the JSON Editor. The JSON will be stored in the Snap (after clicking OK). The JSON can be exported to SnapLogic's file system using the export action or be imported from there using the import action.
The JSON can be customized to meet specific needs, such as:
1) having static content that produces one output document or
2) having a list of static documents within an array definition which can then be transformed into multiple documents upstream by using a JSON Splitter Snap or
3) having variables in the JSON, which can be substituted with document values from the input view of
the Snap.
Additionally, some of the characters can be escaped using #[]# (for a JSON string) or \ (for a single character):
- For example, to escape ##, you specify #[##]#
- For example, to escape $, you specify #[$]# or \$
...
Selected | Selected | |||||||||
Pass through | Checkbox | Optional. Use this property to pass the data in the input document through to the output document and merge it under the key 'original'. See example for more details. | Deselected | Selected | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Support Type Extensions | Checkbox |
| Deselected | Selected | ||||||
Snap Execution | String | Indicates how the Snap must be executed. Available options are:
| Validate & Execute | Execute only |
Troubleshooting
Error | Reason | Resolution |
---|---|---|
Unexpected character ('{' (code 123) | The array entries in the JSON file do not follow the syntax. A comma ',' is expected before the beginning of every second array—'{'. | Verify the array at the row and column mentioned beside the error message using the Edit JSON feature and add a comma appropriately. |
Editing JSON document
Click Edit JSON to launch the JSON Editor.
Edit the JSON file as required.
Click Ok.
The JSON document is stored in the Snap.
Options in JSON Editor
The following table describes the numbered callouts in the image:
1 | Hide whitespace | Hides the whitespace in the output that you may have in the JSON input document. |
2 | Format code | Allows you to format the JSON input document. |
3 | Export | Export the JSON document to SnapLogic's file system (SLFS) |
4 | Import | Import a JSON document from your local directory or SLFS. |
Escaping Special Characters
Additionally, some special characters can be escaped using the following notations.
Type | To pass this value | Specify |
---|---|---|
Single characters | $ | #[$]# or \$ |
JSON String | ## | #[##]# |
For information on how to use pipeline parameters and field values within this Snap, see
...
Velocity Templates in Generator Snaps
...
in Parameters and Fields.
Examples
Using the Pass Through Functionality
Consider the following Pipeline that combines two simple datasets.
Snap Configurations
JSON Object (JSON Generator Snap with Pass through disabled)
This JSON Generator Snap, JSON Object, is used as an input by the downstream JSON Generator Snap, Combined JSON.
Snap Configuration (JSON Object) | |
---|---|
Input JSON | Output JSON |
Combined JSON (JSON Generator Snap with Pass through enabled)
- The Pass through check box is selected.
- In addition to this, the upstream parameter, $details.username, is included in this Snap's JSON script to capture information based on the username field in the upstream document.
Snap Configuration (Combined JSON) | |
---|---|
Input JSON | Output JSON |
The output JSON contains:
- Data from the input document.
- Data captured from the upstream parameter.
Input Schema Types
This example Pipeline demonstrates the difference in the input schema types on selecting and deselecting Support Type Extensions checkbox.
There is no difference in the preview output of JSON Generator or JSON Parser as the JSON representation remains the same. But the Mapper Snaps downstream of the JSON Generator Snap shows the difference in the Input Schema types.
The input schema in Mapper Snap when you deselect Support Type Extensions checkbox in the JSON Generator Snap is as follows. The Snap displays the SnapLogic-specific syntax in the Input Schema.
Here's the same Mapper Snap when you select the Support Type Extensions checkbox. Note the data types in the Input Schema—the Snap does not display the SnapLogic-specific syntax in the Input Schema.
Similarly, here's a Mapper Snap showing the JSON Parser output when you deselect the Support Type Extensions checkbox.
Here's the same Mapper when you select the Support Type Extensions checkbox.
The Support Type Extensions state affects the JSON Formatter's output. When you deselect this checkbox, the SnapLogic-specific syntax is not used; the Snap uses a string representation for each of the special objects.
Here's the output when you select the Support Type Extensions checkbox:
Downloads
Note | ||
---|---|---|
| ||
|
Attachments | ||
---|---|---|
|
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
...