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