JSONUpdater

Modifies JSON documents by performing one or more actions:

  • Inserting a new value into a JSON object or array
  • Replacing an existing value in a JSON object or array
  • Merging the contents of two JSON objects or arrays
  • Removing a value from a JSON object or array
  • Appending a value to a JSON array
  • Renaming a key in a JSON object.

For each document update, a JSON path expression is used to identify the location of the JSON object or array which is to be modified. A second parameter names the specific object key or array index which is to be changed. Note that the path may refer to more than one item. If this is the case, all the items will be modified.

The JSON path expressions used in this transformer are the same as those used in the JSONExtractor and JSONFragmenter transformers, and in the JSON reader.

For modifications that replace existing items or insert new items, two parameters are given which specify the value to be added to the document. This value may be given as a simple text value, or it may be an XQuery expression, a JSON object or a JSON array.

The Update features provide the attribute values used in the document update operations. The Document feature is only used to supply the JSON document which is to be updated.

For each feature that enters the Update port, all of the update operations listed in the transformer will be applied to each feature that entered the transformer through the Document port. Therefore, no changes will be made to the JSON document if no features enter the transformer through the Update port.

Note that if the document is entered directly into the transformer parameters, it may be processed in two different ways:

  • If no Document features are given to the transformer, a new feature will be created to store the document. Each of the updates will be applied to the document, and it will then be output through the Document port.
  • If Document features are given to the transformer, each of the updates will be applied to the document, and these features will be output from the transformer.

Input Ports

Output Ports

Parameters

Group Processing

JSON Document

Updates

Each row in the Updates table specifies a single update operation.

General

Editing Transformer Parameters

Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, click beside the applicable parameter. For more information, see Transformer Parameter Menu Options.

Defining Values

There are several ways to define a value for use in a Transformer. The simplest is to simply type in a value or string, which can include functions of various types such as attribute references, math and string functions, and workspace parameters. There are a number of tools and shortcuts that can assist in constructing values, generally available from the drop-down context menu adjacent to the value field.

Dialog Options - Tables

Transformers with table-style parameters have additional tools for populating and manipulating values.

FME Community

The FME Community is the place for demos, how-tos, articles, FAQs, and more. Get answers to your questions, learn from other users, and suggest, vote, and comment on new features.

Search for samples and information about this transformer on the FME Community.