Shape / columns · All operations

Restructure a document with a transform language

A variant of Parse nested values

Rewrite a JSON or XML document with a stylesheet, patch or transform program such as XSLT, a JSON patch or jq.

Status

In arcform

Not built yet

arcform does not do this yet. Its place on the roadmap

What other tools call it

Meridian's classification; an independent blind rating agreed on 95.7% of 324 rows (variant, version 3).

Apache Hop (2)
  • XSL pipelineread 2026-09-27

    Transform XML files with an XSL stylesheet into XML, HTML or text

  • XSL transformationread 2026-09-27

    Apply an XSL stylesheet to XML held in a field or file

Apache NiFi (4)
  • JSLTTransformJSONread 2026-09-27

    Transform JSON content with a JSLT transformation

  • JoltTransformJSONread 2026-09-27

    Restructure JSON content with a Jolt transform specification

  • JoltTransformRecordread 2026-09-27

    Apply a Jolt specification to each record of a FlowFile

  • TransformXmlread 2026-09-27

    Apply an XSLT stylesheet to XML content

Duckle (1)
  • jq Filterread 2026-09-25

    transform a JSON column with a jq program

EasyMorph (2)
  • Modify JSONread 2026-09-27

    Delete, replace or rename a JSON property, or reformat the JSON (paid editions only)

  • XSLT transformationread 2026-09-27

    Apply XSLT stylesheets to an XML file on disk; the in-memory table is untouched

KNIME Analytics Platform (3)
  • JSON Diffread 2026-09-27

    Compute a JSON patch describing the difference between two JSON columns

  • JSON Transformerread 2026-09-27

    Apply a JSON patch or merge patch to a JSON column

  • XSLTread 2026-09-27

    Apply XSLT stylesheets to the cells of an XML column

Pentaho Data Integration (1)
RapidMiner Studio (1)
  • Process XSLTread 2026-09-27

    Transform an XML document with an XSLT stylesheet

Talend (3)
  • tDSQL4JSONread 2026-09-27

    Transform JSON input into JSON output with a DSQL query

  • tXMLMapread 2026-09-27

    Map and route XML documents between inputs and outputs, optionally joined with flat data

  • tXSLTread 2026-09-27

    Transform an XML file into an output file with an XSL stylesheet

Background

A transformation language is a computer language designed to transform input text in a formal language into modified output text that meets a specific goal.[1] XSL Transformations (XSLT) 3.0 is a language designed primarily for transforming Extensible Markup Language (XML) documents into other XML documents.[2] JavaScript Object Notation (JSON) Patch expresses a sequence of operations to apply to a JSON document.[3]

When to use it

A JSON merge patch describes changes with a document that closely mimics the one being modified: members missing from the target are added, members present are replaced, and null removes a member.[4] A JSON merge patch cannot patch part of a target that is not an object, such as replacing just some of the values in an array.[4] Merge patch documents suit JSON documents that primarily use objects for their structure and do not make use of explicit null values.[4] Reach for a merge patch to set or remove fields, and for JSON Patch when an array element must change or the document holds nulls that matter. (Meridian's view)

JSON Patch applies its operations sequentially, each to the result of the one before, and if any operation fails the patch as a whole is not deemed successful.[3] A JSON Patch operation must be one of add, remove, replace, move, copy or test.[3] DuckDB's json_deep_merge works like json_merge_patch, except that a JSON null in the patch keeps the original value instead of deleting the key.[5] Check whether a pipeline calls a merge patch or a deep merge before trusting the nulls in a patch. (Meridian's view)

The method

An XSLT transformation is achieved by template rules, each associating a pattern, which typically matches nodes in the source document, with a sequence constructor.[2] XSLT can also process multiple source documents, generate multiple result documents and handle formats other than XML.[2] XSLT came out of the World Wide Web Consortium (W3C)'s eXtensible Stylesheet Language (XSL) effort of 1998–1999, and XSLT 1.0 was published as a W3C recommendation in November 1999.[6] The primary purpose of the changes in XSLT 3.0 is to allow transformations in streaming mode, where neither the source nor the result document is ever held in memory in its entirety.[2]

A jq program is a filter: it takes an input and produces an output, and filters can be combined by piping the output of one into another.[7] In jq, .foo? works like .foo but does not output an error when its input is not an object.[7]

JSON Patch was published as Request for Comments (RFC) 6902 in April 2013, and is suitable for use with the Hypertext Transfer Protocol (HTTP) PATCH method.[3] JSON Merge Patch is RFC 7396, published in October 2014, which obsoletes RFC 7386.[4]