Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

JSONata Playground & JSON Mapper

Evaluate real JSONata expressions and inspect mappings across your samples.

Free preview, no sign-upIncluded in your pass Pro tool Pro pass: ₹179 / $5.99 for 30 days On this device; its files download once
+2 +1 more details No upload Developer

Free preview: the first part of your generated expression and output, up to half and at most 20 lines; full exports locked. Locked until you unlock it: download and copy.

Pro pass ₹179 for 30 days or ₹79 for 1 week, one‑time. Pro pass $5.99 for 30 days or $2.99 for 1 week, one‑time. How to unlock

Try before you buy.

  • Free preview: the first part of your generated expression and output, up to half and at most 20 lines; full exports locked.
  • Locked until you unlock it: download and copy.
  • Unlock: Pro pass, ₹179 for 30 days or ₹79 for 1 week, a one-time payment that never renews. Query results unlock with a pass only. Unlock: Pro pass, $5.99 for 30 days or $2.99 for 1 week, a one-time payment that never renews. Query results unlock with a pass only.

Ways to unlock shows how to get the full result.

See passes (opens in a new tab)

Printing this result is locked in the free preview.

Input and transformation

For example {"rate":0.2} binds $rate. Names omit the $.

Remember my original expression

This saves your expression or mapper input. Generated results use the result exports below.

Function reference and examples

Transformation result

Next steps Done. What next?

Start over

A Pro pass unlocks the full result. See passes

All developer tools

About the JSONata Playground & JSON Mapper

Work with the reference JSONata interpreter on your own JSON. Use paths, filters, object constructors, aggregation and higher-order functions, or describe a target object whose leaf values are source expressions. Bind variables without embedding them in the expression, and evaluate the same expression against a list of input samples. Missing results stay distinguishable from an explicit null. The free preview shows partial generated code and output; a Pro pass opens the full result and exports.

How to use it

  1. Paste valid JSON or open a JSON file. Choose expression mode, or mapper mode for a target object with source-expression strings at its leaves.
  2. Enter an expression, variables as a JSON object and, if useful, a JSON array of separate test documents with sample-list mode enabled.
  3. Run the transformation. Parser failures show the actual JSONata position and error code. Editing replaces a pending worker run.
  4. Remember your own original expression and mapper input under a name in this browser. Copy or download generated results with a Pro pass.

Examples

Sum calculated line values
Input
{"orders":[{"quantity":2,"price":5},{"quantity":3,"price":4}]} · $sum(orders.(quantity * price))
Result
22

Mapping and missing fields

A target such as {"total":"$sum(items.price)","customer":{"id":"buyer.id"}} writes an object-constructor expression and evaluates it with the same interpreter. Nested target objects remain nested objects. In sample-list mode the output includes a separate defined flag: defined:false and result:null mean there was no selected value, while defined:true and result:null mean an explicit null.

Language and API

The vendored reference interpreter evaluates expressions in a dedicated worker, rather than JavaScript on the page. A worker is terminated when a newer edit replaces it or processing exceeds five seconds. See the JSONata language documentation and embedding API. Variables are bound by name without a leading $ in the binding object.

Limitations

  • Expressions return data, not executable JavaScript. Host callbacks and network functions are not registered.
  • The worker deadline protects the page from expensive or runaway expressions. A large valid transformation may need a simpler expression or smaller independent inputs.
  • Numbers follow the reference interpreter’s floating-point semantics. Integers beyond the JavaScript safe-integer range and decimal arithmetic may lose precision.
  • Remembered expressions are local preferences, not an account backup. Clearing browser data removes them; storage may be unavailable in a private or restricted session.
  • JSONata is a third-party language; MySmartCoPilot is not affiliated with or endorsed by its maintainers.

Privacy

On this device; its files download once

Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot. Loads the query worker and reference interpreter from this site. Your JSON, expressions and bindings stay on this device.

Frequently asked questions

What do I get without a pass?

Without a pass, JSONata Playground & JSON Mapper shows the first part of your generated expression and output, up to half and at most 20 lines; full exports locked. Until you unlock it, the result can’t be downloaded or copied. A Pro, Premium or Ultimate pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.

Does an expression execute as JavaScript?

No. The actual JSONata interpreter parses and evaluates its own language in a worker. Arbitrary JavaScript evaluation is not used.

Why does a field disappear from an object?

A path can select no value. JSONata can omit such a field. Test the same expression with missing-field samples and use $exists or a conditional when the target requires a fallback.

Where do my files and variables go?

They stay in this browser. No transformation input, binding or expression is uploaded.

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.