如何使用 jq 将当前日期和时间附加到现有 json 文件中

Arr*_*han 4 json date jq

我有以下格式的 json 文件

{
  "username":"achu",
  "password":"test1234"
}
Run Code Online (Sandbox Code Playgroud)

我只想将时间戳添加到上述有效负载中并将其作为某些服务的请求发送。

据我所知,下面的命令将帮助我们获取 Linux 上的当前标记:

date +"%r"
Run Code Online (Sandbox Code Playgroud)

但不确定如何将其附加到上述有效负载中,如下所示:

预期的:

{
  "username":"achu",
  "password":"test1234",
  "date":"1:20:30 AM PST"
}
Run Code Online (Sandbox Code Playgroud)

jq --版本

1.5V

这样可以得到吗?

ogu*_*ail 12

JQ 有用于处理日期的内置函数,例如:

. + {date: (now | strflocaltime("%r"))}
Run Code Online (Sandbox Code Playgroud)

  • 如果你想要一个 ISO8601 日期,jq 有这个:“(now | todateiso8601)”(以及[其他日期内容](https://stedolan.github.io/jq/manual/#Dates)。) (3认同)

pea*_*eak 5

多种可能性之一:

$ jq --arg date $(date +"%r") '. + {date: $date}'
Run Code Online (Sandbox Code Playgroud)

ps jq 程序可以写成:

. + {$date}
Run Code Online (Sandbox Code Playgroud)

pps 您可能会发现,与其不断地询问使用 jq 是否可以实现某件事,不如投入时间来更加熟悉 jq。官方手册是一个很好的参考:https ://stedolan.github.io/jq/manual/