[jq] startswith() requires string inputs エラーを回避する

作成日: 2026年09月17日

startswithnull や数値などの文字列以外の値を渡すと、startswith() requires string inputs エラーが発生します。

例えば、namenull を含む JSON を処理するとエラーになります。

echo '[{"name":"Taro"},{"name":null}]' | jq '.[] | select(.name | startswith("T"))'

実行結果です。

{
  "name": "Taro"
}
jq: error (at <stdin>:1): startswith() requires string inputs

文字列だけを startswith の対象にするには、type で型を確認します。

echo '[{"name":"Taro"},{"name":null},{"name":123},{"name":"Satoshi"}]' | jq '.[] | select(.name | type == "string" and startswith("T"))'

実行結果です。

{
  "name": "Taro"
}

type == "string" を満たす値だけに startswith を適用することで、null や数値を含む JSON でもエラーを回避できます。

jq