[解決済み] 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
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] 正しい」JSONの日付形式とは?
-
[解決済み] JSONでnullを表現する
-
[解決済み】JavaScript版sleep()とは?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] BlobからArrayBufferへ移行する方法
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] javascriptで文字列から関数を作成する方法はありますか?
-
[解決済み] 文字列とラベルのローカライズとグローバリゼーションのベストプラクティス【終了しました
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] JSONにNULL値を含めるべきか [終了しました]