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

如何使用XQuery从Spotify返回的嵌套JSON中提取艺术家名称

错误原因

你的代码路径和JSON实际结构不匹配:你直接从JSON根节点查找artists字段,但实际artists的完整嵌套层级为:

根对象 → items数组 → 数组成员对象 → track对象 → album对象 → artists数组

正确实现代码

提取所有去重的艺术家名称

xquery version "3.1";
let $root := fn:json-doc("spoti.json")
(: 遍历所有items下的artists数组成员 :)
let $all_artists := $root?items?*?track?album?artists?*
return
<Playlist>   
  <song>
  {
    for $name in fn:distinct-values($all_artists?name)
    return <name>{$name}</name>
  }
  </song>
</Playlist>

提取artists下的其他嵌套字段

如果需要同时获取艺术家id、外链、uri等其他字段,调整循环逻辑即可:

xquery version "3.1";
let $root := fn:json-doc("spoti.json")
let $all_artists := $root?items?*?track?album?artists?*
return
<Playlist>
  {
    for $artist in $all_artists
    return <artist>
      <name>{$artist?name}</name>
      <id>{$artist?id}</id>
      <spotify_url>{$artist?external_urls?spotify}</spotify_url>
      <uri>{$artist?uri}</uri>
    </artist>
  }
</Playlist>
路径说明
  • ?* 用于遍历数组的所有成员,对应JSON数组的迭代操作
  • 多层?字段名按层级嵌套向下查找对应字段,和JSON的结构完全对应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:54:02