CodeToolProCodeToolPro
GitHub

JSONata Expression Tester

JSON Data

  • JSONata Expression

    Supported: $.key, $.key.subkey, $.key[index], $['key'], $[?@.key='value']
    Please enter JSON data

    技术详情

    JSONata 测试器的工作原理

    工具功能

    JSONata 测试器可对 JSON 数据执行 JSONata 查询和转换表达式,实时显示查询结果。JSONata 是一种轻量级的 JSON 查询和转换语言,类似于 JSONPath 的功能但更强大(支持表达式求值、聚合函数、变量绑定等)。该工具帮助开发者在浏览器中快速设计和测试 JSONata 表达式。


    常见开发者使用场景

    JSONata 在数据转换和查询场景中使用:低代码/无代码平台使用 JSONata 作为数据转换的表达式语言、Node-RED 流处理中使用 JSONata 节点转换消息负载、在前端将 API 返回的复杂 JSON 变换为组件所需的简化结构、以及在集成中间件中对数据管道中的 JSON 消息进行格式映射。开发者使用它替代手写 JavaScript 映射函数,以更声明式的方式描述数据转换。

    JSONata 查询结果可通过 JSON 格式化器 美化显示。JSONPath 测试器 是另一种 JSON 查询语言,可对比选择最适合的工具。JSON Schema 验证器 可先验证数据格式。JSON 转代码 可将查询结果的 JSON 转为类型定义。


    技术原理/相关概念

    JSONata 语法核心:路径导航使用 .(点表示法),如 $.store.book.title;谓词过滤使用 [field=value],如 $.store.book[price<10];支持内置函数($sum、$count、$average、$max、$min、$sort、$join、$substring 等);变量绑定使用 (var := value; expression);字符串插值使用 `` 反引号模板。表达式求值引擎递归遍历 JSONata 的 AST,在每个节点上应用操作符或函数。


    常见陷阱与注意事项

    • 特殊字符:JSON 字段名包含特殊字符(如空格、连字符)时需要使用反引号包裹:`field-name with spaces`。
    • 数组自动展开:在点路径中遇到数组时,JSONata 会自动将后续操作应用于数组的每个元素(隐式 map),这是初学者常见的困惑点。
    • 返回值顺序:JSONata 的路径根据节点遍历顺序输出,不一定保持 JSON 文档的原始键顺序。
    • 与 JSONPath 差异:JSONata 和 JSONPath 的查询语法不同。JSONPath 仅限查询(不修改数据),而 JSONata 可以转换数据格式。两者不要混用。

    何时使用此工具而非代码

    在快速测试 JSONata 表达式、学习查询语法或设计数据转换规则时使用此工具。适合低代码平台开发者和 Node-RED 用户的日常调试。对于需要集成到代码中的 JSON 查询和转换,推荐使用 JSONata 的 Node.js 库直接集成(npm install jsonata),它提供类型安全和程序化的表达式管理。

    How to Use JSONata Expression Tester

    1. 1Enter your test pattern or regex expression
    2. 2Add test strings, one per line
    3. 3Review the matching results with pass/fail indicators
    4. 4Refine your pattern and re-test until satisfied

    Frequently Asked Questions

    • Can I test multiple inputs at once?

      Yes, you can test multiple values simultaneously. Results are displayed inline with clear pass/fail indicators for quick debugging.

    • Is JSONata Expression Tester free?

      Yes, 100% free. No registration, no credit card required. All tools are freely available for developers worldwide.

    • Does this tool upload my data to any server?

      No. All processing runs locally in your browser using client-side JavaScript. Your input data, code, or files never leave your device. We do not store, log, or transmit any user data.