json 使用jq避免“if-then-else”将一行文本转换为另一种格式

1wnzp6jl  于 2022-11-19  发布在  其他
关注(0)|答案(1)|浏览(126)

使用jq,我想将输入A B=1 C= D=2转换为"A", "B": "1", "C": "", "D": "2"
我想出了解决办法

jq -Rr '. / " " | map(. / "=" | "\"\(.[0])\"" + (if .[1] != null then ": \"\(.[1])\"" else "" end)) | join(", ")'

我相信有一个更优雅的方法可以避免if-then-else。你能帮我缩短表达式吗?

xtupzzrd

xtupzzrd1#

试试看:

jq -Rr '
    . / " " |
    map(. / "=" |
          "\"" + join("\": \"") + "\""
       ) |
    join(", ")
' input.json

相关问题