shell读取json数据

function get_json_value()
{
    
    
  local json=$1
  local key=$2

  if [[ -z "$3" ]]; then
    local num=1
  else
    local num=$3
  fi

  local value=$(echo "${json}" | awk -F"[,:}]" '{
     
     for(i=1;i<=NF;i++){
    
    if($i~/'${key}'\042/){
    
    print $(i+1)}}}' | tr -d '"' | sed -n ${num}p)

  echo ${value}
}
get_json_value '{"SetWifiAp": {"on": 1, "password": "88888888", "hotspot_name": "imx8_ap"}}' hotspot_name
get_json_value '{"SetWifiAp": {"on": 1, "password": "88888888", "hotspot_name": "imx8_ap"}}' password
get_json_value '{"SetWifiAp": {"on": 1, "password": "88888888", "hotspot_name": "imx8_ap"}}' on

输出结果:

imx8_ap
88888888
1

Guess you like

Origin blog.csdn.net/V__KING__/article/details/109165253