使用JQ将API返回JSON转换为ROKU Direct Publisher Feed格式问题
ROKU Feed格式jq转换解决方案
核心转换逻辑
直接构造完整的顶层Feed结构,公共字段仅在顶层定义一次,转换后的所有视频条目统一放入shortFormVideos数组内,即可解决重复字段、JSON结构不合法的问题。
转换模板
jq '{ # 顶层公共字段,按需补充ROKU要求的其他属性 providerName: "你的提供商名称", language: "zh-CN", lastUpdated: (now | strftime("%Y-%m-%dT%H:%M:%SZ")), shortFormVideos: [ # 遍历原始results数组,映射对应字段 .results[] | { id: .原始ID字段名, title: .原始标题字段名, description: .原始简介字段名, thumbnail: .原始封面地址字段名, genres: [.原始分类字段名], content: { duration: .原始时长字段名, url: .原始播放地址字段名 } # 按需补充其他视频属性 } ] }' 原始JSON文件路径 > 输出的ROKU Feed文件路径
动态公共字段处理
如果公共字段存储在原始JSON的顶层而非硬编码,可直接引用原始字段,示例:
providerName: .provider, language: .defaultLanguage,
效果说明
- 公共字段仅在顶层输出一次,不会重复出现在每个视频条目内
- 所有转换后的视频条目自动被包裹进
shortFormVideos数组,生成合法的逗号分隔结构,最终输出完整合规的单份JSON文件。
内容的提问来源于stack exchange,提问作者Crosby Shaterian
相关产品推荐
相关产品推荐

