Steps and examples

Move JSON fields without overwriting existing values

Map exact object paths to new destinations while retaining unrelated fields and numeric tokens. Choose move or copy deliberately: the difference is whether the source field remains.

How to use this tool

  1. Inspect the source structure

    Paste one JSON object or an array containing only objects, then select Inspect fields. With an object array, each mapping is applied separately to every record.

  2. Enter exact source and destination paths

    Use paths such as $.user.name and $.customer.displayName. Select Move fields or Copy fields and choose whether a missing source stops processing or is skipped with a count.

  3. Check the result and reuse the rules

    Generate the preview and inspect both the original and destination branches. Copy or download the result, or use Save mapping in Pipeline to carry the input and rules into the local pipeline.

Input and expected output

Move a name while keeping the original ID

Workspace settings: Mapping mode: Move fields; missing source: Stop with an error. Use one rule from $.user.name to $.customer.displayName.

Input
{"user":{"name":"Ada","id":9007199254740993},"active":true}
Expected output
{
  "user": {
    "id": 9007199254740993
  },
  "active": true,
  "customer": {
    "displayName": "Ada"
  }
}

The source name is removed, the missing customer object is created, and user.id and active remain unchanged. Copy mode would keep user.name as well. The large integer is not rounded.

Limits and checks

Existing destinations and conflicting rules
An existing destination is rejected even when its value is null. A destination cannot overlap a source or another destination; move rules also cannot overlap their sources. A non-object destination parent is an error, not an invitation to replace it.
Exact paths and processing limits
Paths support object fields and quoted keys, not array indexes, wildcards or expressions. Nested arrays can move as whole values. Input is limited to 1 MiB and 10,000 records, with 1–32 rules and at most 16 object fields per path; output is limited to 10 MiB.

Understanding the result

Does a missing source count as null?

No. An existing null is a value and can be moved or copied. A missing field follows your error/skip choice; skip preserves the rest of the record and reports how many mappings were omitted.

Are empty parent objects removed after a move?

No. Moving the last child leaves its old parent as an empty object. Unrelated structure is preserved rather than silently pruned. Review the output if your destination API distinguishes an empty object from a missing field.