我有一个包含n 个用户的 json 文件。我需要为每个用户用不同的 UUID 替换 id 字段。之后,我需要使用 json 作为有效负载进行n curl 调用。我怎样才能做到这一点?
我的 json 文件:
[{
"id": "a3d920e",
"name": "Alice",
"age": 17
},{
"id": "18db903",
"name": "Bob",
"age": 71
},{
"id": "ff9a32c",
"name": "Carol",
"age": 30
}]
我试过这个命令:
jq -c '.[] | objects' mydata.json | jq -c --arg a "$(uuidgen)" '.id = $a'
使用该命令,我可以替换 id 字段,但我需要为每个用户提供一个唯一的 UUID,而该命令为所有用户提供了相同的 UUID。之后,我需要将每个 json-object 作为有效负载运行curl -X POST http://localhost:8080
n次(对于这个示例文件,Alice 一次,Bob 一次,Carol 一次)。
我尝试使用 xargs 来实现这一点,但无法弄清楚如何与 jq 一起运行它。
由于每个对象都是一行,您可以使用
read
循环读取对象:-d @-
告诉 curl 从标准输入中读取有效负载。