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

如何在JSONiq中创建存储指定学生课程的$courses变量

用JSONiq生成指定SSN学生的课程对象

核心实现代码

let $transcript := [
       {
         "dcode": "CS",
         "cno": 211,
         "ssn": 82,
         "grade": "A"
       },
       {
         "dcode": "CS",
         "cno": 211,
         "ssn": 75,
         "grade": "A"
       },
       {
         "dcode": "MTH",
         "cno": 125,
         "ssn": 82,
         "grade": "F"
       }
]
let $courses := object {
  for $entry in $transcript[]
  where $entry.ssn eq 82
  return $entry.dcode : $entry.cno
}
return $courses

关键步骤

  • 遍历并过滤条目:通过for $entry in $transcript[]展开数组中的每一个元素,再用where $entry.ssn eq 82筛选出SSN为82的学生选课记录
  • 动态构造目标对象:在object {}构造器内部,通过return $entry.dcode : $entry.cno将符合条件记录的dcode作为对象的键,cno作为对应的值,自动拼接成目标结构

问题说明

你之前在{}内直接写循环失败,是因为JSONiq的对象构造器要求动态生成键值对时,必须遵循object { for ... return key : value }的语法结构,不能直接嵌套普通循环语句。

运行代码后,$courses的输出结果为:

{"CS":211,"MTH":125}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 00:09:23