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

如何解析包含动态属性的JSON对象中的嵌套元素

动态ID嵌套JSON的数据流解析方案

针对results.timesheets下动态ID无法固定访问的问题,核心思路是忽略动态键名,直接提取父对象的所有值集合,把键值对结构转为数组后统一处理。以下是几种常见数据流工具的实现方式:

1. Python 自定义脚本解析

如果用Python搭建数据流,直接提取timesheets的所有值即可:

import json

# 加载JSON数据(实际场景可从文件/接口读取)
raw_json = '''
{
  "results": {
    "timesheets": {
      "135288482": {
        "id": 135288482,
        "user_id": 1242515,
        "jobcode_id": 17288283,
        "customfields": {"19142": "Item 1", "19144": "Item 2"},
        "attached_files": [50692, 44878],
        "last_modified": "1970-01-01T00:00:00+00:00"
      },
      "135288514": {
        "id": 135288514,
        "user_id": 1242509,
        "jobcode_id": 18080900,
        "customfields": {"19142": "Item 1", "19144": "Item 2"},
        "attached_files": [50692, 44878],
        "last_modified": "1970-01-01T00:00:00+00:00"
      }
    }
  }
}
'''

data = json.loads(raw_json)
# 提取所有动态ID下的工时单数据,转为列表
timesheet_list = list(data['results']['timesheets'].values())

# 后续可直接遍历列表处理每个工时单
for sheet in timesheet_list:
    print(f"处理工时单ID: {sheet['id']}")

2. Apache NiFi 可视化数据流处理

用NiFi的JoltTransformJSON处理器,通过Jolt规则把动态键转为数组:
Jolt Shift 规则:

{
  "results": {
    "timesheets": {
      "*": {
        "@": "results.timesheet_list[]"
      }
    }
  }
}

该规则会把timesheets下所有动态ID对应的值,转移到timesheet_list数组中,之后就能按数组遍历处理每个工时单。

3. Azure Data Factory (ADF) 云端数据流处理

在ADF数据流中两步搞定:

  • 先用解析JSON活动将原始JSON转为结构化数据
  • 添加扁平化活动,选择results.timesheets作为扁平化对象,设置为"拆分为行",这样每个动态ID对应的工时单会变成单独一行,后续直接访问id、user_id等字段即可。

4. Node.js 数据流处理

如果用Node.js构建数据流,同样提取对象值:

const rawData = {
  "results": {
    "timesheets": {
      "135288482": { /* 工时单数据 */ },
      "135288514": { /* 工时单数据 */ }
    }
  }
};

// 提取所有工时单为数组
const timesheetArray = Object.values(rawData.results.timesheets);

// 遍历处理
timesheetArray.forEach(sheet => {
  console.log(`用户ID: ${sheet.user_id}, 工时单ID: ${sheet.id}`);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:15:26