代码之家  ›  专栏  ›  技术社区  ›  Nobody

根据类型使用jq解析json

  •  1
  • Nobody  · 技术社区  · 8 年前

    我想根据json的类型来解析它,因为它有时会发生变化。如果json是一个数组,我需要得到第一个元素,如果不是,我只需要那个元素!下面是一个简单的版本,我试图工作。

    #!/bin/bash
    
    word='[0,1]'
    word=$(echo $word | jq 'if type=="array" then "'$word[0]'" else "'$word'" end')
    echo $word
    

    It输出 "[0,1][0]"

    #!/bin/bash
    
    word='[0,1]'
    word=$(echo $word | jq 'if type=="array" then "yes" else "no" end')
    echo $word
    

    为什么会有差异,如何实现前者?

    1 回复  |  直到 8 年前
        1
  •  3
  •   Bertrand Martel    8 年前

    您可以使用 .[0]

    echo "$word" | jq 'if type=="array" then .[0] else . end'