jq分割字符串并分配

时间:2018-08-14 09:03:19

标签: json jq

我有以下json

{
    "version" : "0.1.2",
    "basePath" : "/"
}

所需的输出是

{
    "version" : "0.1.2",
    "basePath" : "beta1"
}

我有以下jq产生以下错误:

.basePath = .version | split(".") as $version | if  $version[0] == "0" then "beta"+ $version[1] else $version[0] end

jq:错误(在3处):拆分输入和分隔符必须为字符串 退出状态5

使用.basePath = .version成功分配值,而.version | split(".") as $version | if $version[0] == "0" then "beta"+ $version[1] else $version[0] end自行返回"beta1"。是否可以将字符串分配给basePath键?

1 个答案:

答案 0 :(得分:2)

好消息!您建议的解决方案只是缺少一对括号。另外,也不需要$version。也就是说,可以做到这一点:

.basePath = (.version | split(".")
             | if .[0] == "0" then "beta"+ .[1] else .[0] end)