Say in my application, some users give us their last name, and others do not. In a REST API response, which body is preferred:
With a "null" value:
{"firstName": "Bob",
"lastName": null}
Or just a missing key:
{"firstName": "Bob"}
1 Answer 1
Consider removing empty or null values.
If a property is optional or has an empty or null value, consider dropping the property from the JSON, unless there's a strong semantic reason for its existence.
{
"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
}
Further Reading
Google Style Guide - Empty or Null Property Values
Should null values be included in JSON responses from a REST API?
-
1thanks for the link, Robert. so even if
currentlyPlaying
will be in some responses and not other, it's preferrable to have the client check if the key is there or not rather than check if it's null?jtmarmon– jtmarmon2015年05月26日 20:00:21 +00:00Commented May 26, 2015 at 20:00 -
null
andundefined
have almost the same meaning in Javascript, and you can check for both usingif (myProperty == null)
Robert Harvey– Robert Harvey2015年05月26日 20:01:55 +00:00Commented May 26, 2015 at 20:01 -
well actually in my case the client might be java, objective-c, or javascript. the link within the second link (API-craft) indicates to me that null fits our semantic use case, but mostly that I should just make a decision and stick to it :P thanks againjtmarmon– jtmarmon2015年05月26日 20:10:27 +00:00Commented May 26, 2015 at 20:10
-
Simple: If the application needs to distinguish between different values, then the server must provide different values, otherwise it need not and should not. Does your app need to distinguish between a key not being present, a key have an empty string as a value, and a key having a null value?gnasher729– gnasher7292015年05月27日 10:50:01 +00:00Commented May 27, 2015 at 10:50
-
11The answer in this post addresses some good reasons as to why you should not remove null fields.Dave New– Dave New2015年11月16日 14:57:38 +00:00Commented Nov 16, 2015 at 14:57