gpt4 book ai didi

json - 使用 jq 将长 JSON 与另一个合并

转载 作者:行者123 更新时间:2023-12-05 04:08:30 28 4
gpt4 key购买 nike

我需要做一些 CURL,从中构建一个输出 JSON。这就是我设法使用函数执行合并的方式:

...
ADDITIONALJSONDATA="{\"$DATATYPE\" : "$DATA"}"
MERGEDENTRY=$(echo $SOURCE | jq --argjson json "$ADDITIONALJSONDATA" '. += $json' | tr -d '\r\n')
...

似乎当 $DATA 中的 JSON 足够大时,我就会收到 Argument list too long 错误。是否可以(以一种很好的方式)在此处将 JSON 合并为单个参数?

最佳答案

  1. 如果像这里的情况一样,您已经有了 $DATA 和 $DATATYPE,那么就不需要 ADDITIONALJSONDATA

  2. 一般来说,在这里使用 tr -d '\r\n' 是非常糟糕的做法,例如因为它可以将 1 和 2 揉在一起制成 12

希望以下内容能满足您的要求:

MERGEDENTRY=$(jq -c --arg TYPE "$DATATYPE" --slurpfile A <(printf '%s\n' "$DATA") '
. += {($TYPE): $A[0]}' <<< "$SOURCE")

(我们需要在这里使用 $A[0],因为“slurping”将 $DATA 放入数组中。)

关于json - 使用 jq 将长 JSON 与另一个合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47442344/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com