1
我想解析一个json,因为它的类型有时会有所不同。如果json是一个数组,我需要获取第一个元素,否则我只需要该元素!下面是我试图研究的更简单的版本。根据类型使用jq解析json
#!/bin/bash
word='[0,1]'
word=$(echo $word | jq 'if type=="array" then "'$word[0]'" else "'$word'" end')
echo $word
它输出"[0,1][0]"
其中如我所料的通过条件将被分配给该变量,这仅仅是0。因为在下面的情况下,它只是印刷“是”。
#!/bin/bash
word='[0,1]'
word=$(echo $word | jq 'if type=="array" then "yes" else "no" end')
echo $word
为什么会有差异以及如何实现前者?
你明确地与周围的字面双引号你的价值。这意味着你*要求*将它视为一个字符串,而不是表达式提取列表的第一个元素。 –
如果数组是空的,该怎么办? – peak
我在主代码中以不同的方式处理了这个问题 – Nobody