我正在构建一个使用JSON作为数据语言的Web服务API。在设计服务返回的数据结构时,我遇到了一些困难,不知道如何处理缺失的值。
考虑以下例子:我的网店中有一个产品,其价格尚未确定,可能是因为该产品尚未发布。我应该包含price: null
(如下所示),还是仅省略此项上的price
属性?
{
name: 'OSX 10.6.10',
brand: 'Apple',
price: null
}
我的主要关注点是尽可能使API易于使用。显式的null值清楚地表明产品上可以期望价格,但另一方面它似乎浪费字节。可能会有许多属性对于这个特定的产品来说完全不相关,但对于其他产品来说却很重要 - 我应该像显式的null值一样显示这些吗?
{
name: 'OSX 10.6.10',
price: 29.95,
color: null,
size: null
}
在Web服务设计方面,有没有关于显式或隐式空值的“最佳实践”?有任何事实标准吗?还是完全取决于使用情况?