jq -r では、存在しないフィールド、null となっているフィールドは、文字列 null が取得される

# 検証
## `jq -r` の挙動
`{jq -r` では、存在しないフィールド、`null` となっているフィールドは、文字列 null が取得される。
``` aaa_1.sh
#!/bin/bash

set -euo pipefail

json_data='{
  "name": "John",
  "age": 30,
  "city": null
}'

echo "JSON Data:"
echo "$json_data"
echo

echo "name!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
name=$(echo "$json_data" | jq -r '.name')
echo "Attribute 'name': $name"

echo "Directly from jq:"
echo "$json_data" | jq -r '.name'

if [[ -z "$name" ]]; then
  echo "-z name true"
else
  echo "-z name false"
fi

if [[ "$name" == "null" ]]; then
  echo "name == null true"
else
  echo "name == null false"
fi

echo "city!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
city=$(echo "$json_data" | jq -r '.city')
echo "Attribute 'city' (null value): $city"

echo "Directly from jq (null value):"
echo "$json_data" | jq -r '.city'

if [[ -z "$city" ]]; then
  echo "-z city true"
else
  echo "-z city false"
fi

if [[ "$city" == "null" ]]; then
  echo "city == null true"
else
  echo "city == null false"
fi

echo "country!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
country=$(echo "$json_data" | jq -r '.country')
echo "Attribute 'country' (does not exist): $country"

echo "Directly from jq (non-existent):"
echo "$json_data" | jq -r '.country'

if [[ -z "$country" ]]; then
  echo "-z country true"
else
  echo "-z country false"
fi

if [[ "$country" == "null" ]]; then
  echo "country == null true"
else
  echo "country == null false"
fi

echo "Invalid JSON!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
invalid_json='This is not JSON'
echo "Testing with invalid JSON:"
echo "$invalid_json" | jq -r '.name'
```
```
$ ./aaa_1.sh
JSON Data:
{
  "name": "John",
  "age": 30,
  "city": null
}

name!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Attribute 'name': John
Directly from jq:
John
-z name false
name == null false
city!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Attribute 'city' (null value): null
Directly from jq (null value):
null
-z city false
city == null true
country!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Attribute 'country' (does not exist): null
Directly from jq (non-existent):
null
-z country false
country == null true
Invalid JSON!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Testing with invalid JSON:
jq: parse error: Invalid numeric literal at line 1, column 5
```

## `-z` の挙動
`-z` は、空文字列("") もしくは 未定義の場合、true が返ってくる。
下記の`set -eo pipefail`の部分を、`set -euo pipefail`に変更したら、`u`オプションによって未定義の変数はそもそもエラーになるので、`-z`の結果は関係なくなる。
``` aaa_2.sh
#!/bin/bash

set -eo pipefail

echo "myvalue!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
myvalue=""
echo myvalue: $myvalue
if [[ -z "$myvalue" ]]; then
  echo "-z myvalue true"
else
  echo "-z myvalue false"
fi

echo "myvalue2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
myvalue2="abcde"
echo myvalue2: $myvalue2
if [[ -z "$myvalue2" ]]; then
  echo "-z myvalue2 true"
else
  echo "-z myvalue2 false"
fi

echo "myvalue3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
myvalue3=null
echo myvalue3: $myvalue3
if [[ -z "$myvalue3" ]]; then
  echo "-z myvalue3 true"
else
  echo "-z myvalue3 false"
fi

echo "myvalue4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
myvalue4="null"
echo myvalue4: $myvalue4
if [[ -z "$myvalue4" ]]; then
  echo "-z myvalue4 true"
else
  echo "-z myvalue4 false"
fi

echo "myvalue5_undefined!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo myvalue5_undefined: $myvalue5_undefined
if [[ -z "$myvalue5_undefined" ]]; then
  echo "-z myvalue5_undefined true"
else
  echo "-z myvalue5_undefined false"
fi
```
```
$ ./aaa_2.sh
myvalue!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
myvalue:
-z myvalue true
myvalue2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
myvalue2: abcde
-z myvalue2 false
myvalue3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
myvalue3: null
-z myvalue3 false
myvalue4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
myvalue4: null
-z myvalue4 false
myvalue5_undefined!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
myvalue5_undefined:
-z myvalue5_undefined true
```

## shell には、null 型は存在しない。
``` aaa_3.sh
#!/bin/bash

echo "value1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
value1="ABCDE"
if [[ "$value1" == "ABCDE" ]]; then
  echo "value1 == ABCDE true"
else
  echo "value1 == ABCDE false"
fi

if [[ "$value1" == ABCDE ]]; then
  echo "value1 == ABCDE true"
else
  echo "value1 == ABCDE false"
fi

echo "value2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
value2=ABCDE
if [[ "$value2" == "ABCDE" ]]; then
  echo "value2 == ABCDE true"
else
  echo "value2 == ABCDE false"
fi

if [[ "$value2" == ABCDE ]]; then
  echo "value2 == ABCDE true"
else
  echo "value2 == ABCDE false"
fi

echo "value3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
value3="null"
if [[ "$value3" == "null" ]]; then
  echo "value3 == null true"
else
  echo "value3 == null false"
fi

if [[ "$value3" == null ]]; then
  echo "value3 == null true"
else
  echo "value3 == null false"
fi

echo "value4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
value4=null
if [[ "$value4" == "null" ]]; then
  echo "value4 == null true"
else
  echo "value4 == null false"
fi

if [[ "$value4" == null ]]; then
  echo "value4 == null true"
else
  echo "value4 == null false"
fi
```
```
$ ./aaa_3.sh
value1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
value1 == ABCDE true
value1 == ABCDE true
value2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
value2 == ABCDE true
value2 == ABCDE true
value3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
value3 == null true
value3 == null true
value4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
value4 == null true
value4 == null true
```