如何使用jq将含Documents数组的单行JSON转为JSONLINES格式
解决方案
直接使用以下jq命令即可实现需求:
jq -c '.Documents[]' response.json > output.jsonl
命令解释:
-c:启用紧凑输出模式,每个JSON对象会被压缩成单行,正好匹配JSON Lines格式要求。.Documents[]:定位到根对象下的Documents数组,遍历数组中的每一个元素并单独输出。
你之前的命令无效原因:
jq --slurp '.':--slurp会把整个文件内容读成一个数组,完全没必要处理单根对象的场景。- 管道方向错误的命令(如
jq -c '.[]' | jq ."Documents"):应该先从文件读取内容传给jq,而非先执行jq命令再传入文件。 select("Documents"):select用于筛选满足条件的对象,传入字符串"Documents"永远为真,根本没起到定位Documents数组的作用。
内容的提问来源于stack exchange,提问作者sanjanakaranam
相关产品推荐
相关产品推荐

