- Recommended limit of 1 GB in source file size. Since conversion happens within the
, this limit may vary depending on the memory of the
D s node
D s node
- Each JSON record must be less than 1MB in size.
- Filename extensions must be
- Conversion of compressed JSON files is not supported. Compressed JSON files can be imported using the previous method. See Working with JSON v1.
For best results, all keys and values should be quoted and imported as strings.
NOTE: Escape characters that make JSON invalid can cause your JSON file to fail to import.
You can escape quote values to treat them as literals in your strings using the backslash character. For example:
- When the values are imported into the Transformer page, the
re-infers the data type for each column.
D s webapp
- In the Recipe panel, click New Step.
- In the Search panel, enter
unnest values into new columns.
Specify the following transformation. Substitute the Paths to elements values below with the top-level keys in your JSON records:
D trans Type ref p01Name Column p01Value metrics p02Name Path to elements1 p02Value  SearchTerm Unnest values into new columns Tip
Tip: You can choose to remove the original from the source or not. In deeper or wider JSON files, removing can help to identify what remains to be unnested.
- In the above transformation, the bracketing array around the set of values has been broken down into raw JSON. This value may now be interpreted as a String data type. From the column drop-down, you can select Object data type.
- Click the column head again, or specify the following transformation to unnest the Object column:
D trans p03Value score Type ref p01Name Column p01Value 0 p02Name Path to elements1 p02Value rank p03Name Path to elements2 SearchTerm Unnest Objects into columns
- In the above, each Paths to elements entry specifies a key in the JSON record. The key's associated value becomes the value in the new column, which is given the same name as the key.
So, this step breaks out the key-value pairs for the specified keys into separate columns in the dataset.
- Repeat the above process for the next level in the hierarchy.
You can now delete the source columns. In the example, these source columns are named
Tip: SHIFT + click these columns and then select Delete columns from the right panel. Click Add.
Repeat the above steps for each nested JSON object.
Tip: If the above set of steps needs to be applied to multiple files, you might consider stopping your work and returning to Flow View. Select this recipe and click Add New Recipe. If you add successive steps in another recipe, the first one can be used for doing initial processing of your JSON files, separate from any wrangling that you may do for individual files.
Tip: The unnesting process may have moved some columns into positions that are different from their order in the original JSON. Use the Move command from the column menu to reposition your columns.
- SHIFT + click the
filenamecolumns. Then, select Nest columns in the right-hand panel. This transformation should look like the following:
D trans p03Value Object Type ref p01Name column1 p01Value url p02Name column2 p02Value filename p03Name Nest columns to p04Value column1 p04Name New column name SearchTerm Nest columns into Objects
column1now contains an Object mapping of the two columns. You can now nest this column again into an Array:
D trans p03Value resources Type ref p01Name Columns p01Value column1 p02Name Nest columns to p02Value Array p03Name New column name SearchTerm Nest columns into Objects
- Continue nesting other columns in a similar fashion. Repeat the above steps for the next level of the hierarchy in your dataset.
You must re-nested from the bottom of the target hierarchy to the top.
NOTE: Do not nest the columns at the top level of the hierarchy.
- When the column names contain all of the keys that you wish to generate in the top-level JSON output, you can run the job.