1. ホーム
  2. javascript

[解決済み] JSONにおけるemptyとnullの使い分けはどうなっていますか?

2023-06-05 21:56:49

質問

ほとんどのプログラミングのシナリオでは、要素が 0 の場合、空のコレクションから null のコレクションが優先されることは知っています。 しかし、JSON を消費するほとんどの言語 (JavaScript など) は、空のリスト/オブジェクトを true として扱い、Null を false として扱います。 たとえばこれは、JavaScriptではtrueとオブジェクトの両方となります。

{
    "items_in_stock": {"widgets":10, "gadgets": 5}
}

しかし、これもまた事実である。

{
    "items_in_stock": {}
}

そして、これは偽です。

{
    "items_in_stock": null
}

JSONの空のオブジェクト/リストに関する規約はありますか?また、数値、ブーリアン、文字列についてはどうでしょうか?

どのように解決するのですか?

空の配列を返すのは良いプログラミングプラクティスです。 [] を返すのが良いプログラミングの習慣です。これにより、jsonの受信者は、最初にnullをチェックすることなく、すぐにその値を配列として扱うことができるようになります。これは、開閉中括弧を使用した空のオブジェクトについても同じことが言えます {} .

文字列、ブール値、整数値には「空」の形式がないので、そこではNULL値を使っても問題ありません。

これはJoshua Blochsの素晴らしい本"Effective Java"でも扱われています。そこでは、彼はいくつかの非常に優れた一般的なプログラミングの実践を説明しています (しばしば他のプログラミング言語にも適用できます)。nullの代わりに空のコレクションを返すことは、そのうちの1つです。

彼の本のその部分へのリンクはこちらです。

http://jtechies.blogspot.nl/2012/07/item-43-return-empty-arrays-or.html