You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在JSONiq/Zorba脚本中通过控制台打印进行调试?

在JSONiq/Zorba中用控制台打印调试当然可行!

完全可以通过控制台打印来调试你的JSONiq脚本,不过在Zorba里得用它自带的打印函数,我给你理清楚细节:

首先,Zorba的打印函数属于http://zorba.io/modules/zorba命名空间,所以必须先声明这个命名空间才能使用,不然直接写print()会报错。你给出的示例代码可以修正成这样:

declare namespace zorba = "http://zorba.io/modules/zorba";
declare namespace utils = "http://example.com/utils";  (: 别忘了声明自定义的utils命名空间哦 :)

declare function utils:lowerCaseKey($obj as item) as item {
  zorba:print($obj),  (: 用逗号分隔打印语句和后续逻辑,保证函数返回的是转换后的对象 :)
  {
    for $k in distinct-values(keys($obj))
    return { lower-case($k) : $obj.$k }
  }
};

这里有两个关键点要注意:

  • 必须声明zorba命名空间,不然找不到打印函数
  • 打印语句后面要加逗号,因为JSONiq是基于表达式的语言,这样才能让函数继续执行后面的对象转换逻辑,而不是把打印的结果作为返回值

另外,还有个更实用的调试函数zorba:trace(),它不仅能打印内容,还会返回输入的元素,非常适合插入到链式操作里,还能加自定义提示文本,让调试信息更清晰:

declare namespace zorba = "http://zorba.io/modules/zorba";
declare namespace utils = "http://example.com/utils";

declare function utils:lowerCaseKey($obj as item) as item {
  {
    for $k in distinct-values(keys(zorba:trace($obj, "当前处理的输入对象:")))
    return { 
      lower-case($k) : zorba:trace($obj.$k, "键 " || $k || " 对应的值:") 
    }
  }
};

当你用Zorba运行这个脚本时,所有打印/追踪的内容都会直接输出到控制台,帮你轻松观察变量值和代码执行流程。

内容的提问来源于stack exchange,提问作者Ben Flowers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:29:32