使用jq在JSON中使用Concat 2字段

dar*_*ous 45 json jq

jq用来改造我的JSON.

JSON字符串:

{"channel": "youtube", "profile_type": "video", "member_key": "hello"}

通缉输出:

{"channel" : "profile_type.youtube"}

我的命令:

__PRE__

我知道下面的命令连接字符串.但它的工作原理与上述不同:

__PRE__

如何使用ONLY jq实现我的结果?

Ant*_*lia 56

在字符串连接代码周围使用括号:

__PRE__

  • 考虑使用字符串插值代替,它比多个字符串连接干净得多。 (4认同)

jq1*_*727 26

这是一个使用字符串插值的解决方案,如Jeff建议:

{channel: "\(.profile_type).\(.member_key)"}
Run Code Online (Sandbox Code Playgroud)

例如

$ jq '{channel: "\(.profile_type).\(.member_key)"}' <<EOF
> {"channel": "youtube", "profile_type": "video", "member_key": "hello"}
> EOF
{
  "channel": "video.hello"
}
Run Code Online (Sandbox Code Playgroud)

字符串插值与\(foo)语法一起使用(类似于shell $(foo)调用).
请参阅官方JQ手册.