You need to enable JavaScript to run this app. Angular如何从嵌套JSON对象数组中提取images节点下各规格的url字段
优惠活动
大模型
产品
解决方案
定价
更多

Angular如何从嵌套JSON对象数组中提取images节点下各规格的url字段

解决方案

以下分别提供几种常用开发场景下的实现方式:

  • JavaScript 运行环境实现
// 已将原始JSON解析为obj变量
const allImageUrls = []
// 遍历main下的二维数组
obj.main.forEach(level1Arr => {
  level1Arr.forEach(mainItem => {
    // 兼容content/items字段缺失的场景
    mainItem.content?.items?.forEach(contentItem => {
      const imgLists = contentItem.images?.lists
      if (!imgLists) return
      // 遍历所有图片规格(small/original/large/medium等)
      Object.values(imgLists).forEach(specImgList => {
        specImgList.forEach(img => {
          // 仅收集有值的url,可根据需求去掉该判断
          if (img.url) allImageUrls.push(img.url)
        })
      })
    })
  })
})
  • Python 实现
import json

# 加载原始JSON数据,json_str为原始JSON字符串
data = json.loads(json_str)
all_image_urls = []

for level1_arr in data["main"]:
    for main_item in level1_arr:
        content = main_item.get("content", {})
        content_items = content.get("items", [])
        for content_item in content_items:
            img_lists = content_item.get("images", {}).get("lists", {})
            # 遍历所有规格的图片列表
            for spec_img_list in img_lists.values():
                for img in spec_img_list:
                    img_url = img.get("url")
                    if img_url:
                        all_image_urls.append(img_url)
  • 命令行工具jq实现(适合快速批量处理JSON文件)
# 假设原始JSON存储在data.json文件中
jq '.main[][] | .content.items[] | .images.lists | values[] | .[] | .url' data.json

如果需要同时保留图片对应的规格信息,可将收集逻辑调整为存储键值对,比如{ "spec": "small", "url": "xxx" }的格式即可。

内容的提问来源于stack exchange,提问作者Daniel Vágner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 02:24:02