題名通り、JSONのStringはNULLとなることはありません。
参考: RFC7159, RFC8259,
JSONの型
JSONは以下形があるとRFC7159で定められています。
A JSON value MUST be an object, array, number, or string, or one of
the following three literal names:false null true
また、RFC8259では以下のように書かれています。
A JSON value MUST be an object, array, number, or string, or one of
the following three literal names:false null true
とのことより、StringとNULLは別の型であることがわかります。
型が違うのだからStringといったらNULLが入ることは絶対にありません。
でも、往々にして入ってくるし
結局は決めの問題で、システムがー...、案件がー...、担当者がー...、言語仕様がー...、値が無いときにどうするかという仕様でNULLを選んだんだとおもいます。1
しかし、「XXXのJSONのAというValueはString」と決めただけであれば、NULLが入ってくることは偽りようのない不具合で、
もし値が無いことを表現したいのであらば、「値が無い場合はNULLとする」や「何からのFlagで値が無い事を示す」という仕様をつくるべきだと思います。
以上、JSONレスポンスの仕様にString型なのに「NULLが入ることは無い」と書いてしまった、自戒の念を込めて。
-
PHPの
json_encode
とかで作ると、Stringとして作っててもNULLが入るとnullって入っちゃうと思います。 sample_php:$arr = array('a' => null, 'b' => 2, 'c' => "3", 'd' => 4, 'e' => 5);echo json_encode($arr);
↩