null対REST APIレスポンスのキーの欠落[終了]


40

私のアプリケーションでは、一部のユーザーは姓を教えてくれますが、他のユーザーは教えません。REST APIレスポンスでは、どのボディが優先されます:

「ヌル」値の場合:

{"firstName": "Bob",
 "lastName": null}

または、不足しているキー:

{"firstName": "Bob"}

回答:


31

空の値またはnull値を削除することを検討してください。

プロパティがオプションであるか、空またはnull値を持っている場合は、その存在の強い意味上の理由がない限り、JSONからプロパティを削除することを検討してください。

{
  "volume": 10,

  // Even though the "balance" property's value is zero, it should be left in,
  // since "0" signifies "even balance" (the value could be "-1" for left
  // balance and "+1" for right balance.
  "balance": 0,

  // The "currentlyPlaying" property can be left out since it is null.
  // "currentlyPlaying": null
}

さらに読書
Googleのスタイルガイド-空またはnullのプロパティ値
万一のヌル値はREST APIからJSONレスポンスに含まれますか?


リンクをありがとう、ロバート。だからcurrentlyPlaying、いくつかの応答にあり、他の応答にはない場合でも、キーがnullかどうかをチェックするのではなく、クライアントにキーが存在するかどうかをチェックさせることが望ましいですか?
jtmarmon

nullそしてundefined持っているほとんど JavaScriptで同じ意味を、そして、あなたは両方をチェックすることができます使用してif (myProperty == null)
ロバート・ハーヴェイ

私の場合、クライアントはjava、objective-c、またはjavascriptの場合があります。第2のリンク(API-クラフト)内のリンクは、nullはなく、ほとんどが、私はちょうどそれを決定し、スティックにする必要があることを、私たちのセマンティックユースケースに適合することを私に示していますPのおかげで再び
jtmarmon

シンプル:アプリケーションが異なる値を区別する必要がある場合、サーバーは異なる値を提供する必要があります。アプリは、存在しないキー、値として空の文字列を持つキー、およびnull値を持つキーを区別する必要がありますか?
gnasher729

3
この投稿回答は、nullフィールドを削除してはならない理由に関するいくつかの正当な理由に対処しています。
デイブニュー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.