应该JSON包含空值
我正在创build一个以JSONforms返回结果的API。 是否有一个当前的最佳做法,是否应该在值为空的结果中包含键? 例如:
{ "title":"Foo Bar", "author":"Joe Blow", "isbn":null }
要么
{ "title":"Foo Bar", "author":"Joe Blow" }
由于第二个更小我倾向于这种风格,但我不知道是否有一个首选的风格或不。 从客户angular度来看,这两种风格似乎在function上是等同的。 任何优点或缺点每个?
第二个将节省带宽less量,但如果这是一个问题,你也将使用索引数组,而不是用键填充JSON。 显然, ["Foo Bar","Joe Blow"]
比现在短得多。
在可用性方面,我不认为这有什么区别。 在这两种情况下, if(json.isbn)
都会跳到else
。 通常不需要区分null
(没有值)和undefined
(没有给定的值)。
我是一个总是包含null的风扇,因为它带有意义。 遗漏财产不明确。
只要你与服务器的协议是一致的,上面的任何一个都可以工作,但是如果你从服务器传递空值,我相信这会让你的API在以后变得更加灵活。
还应该提一下,javascript的hasOwnProperty函数可以让你进一步了解。
/* if true object DOES contain the property with *some* value */ if( objectFromJSON.hasOwnProperty( "propertyName" ) ) /* if true object DOES contain the property and it has been set to null */ if( jsonObject.propertyName === null ) /* if true object either DOES NOT contain the property OR object DOES contain the property and it has been set to undefined */ if( jsonObject.propertyName === undefined )
在JavaScript中, null
表示与undefined
完全不同的东西。
您的JSON输出应该反映您的应用程序在使用JSON数据的特定上下文中所使用和需要的内容。
如果需要区分null
和undefined
,那么你一定要包含它,因为这些在Javascript中有两个不同的含义。 您可以将null
看作是意味着该属性是未知的或无意义的,并且undefined
为该属性不存在。
另一方面,如果不需要任何人做出这种区分,那就继续说下去吧。
我认为使用JSON作为用户体验背后的数据并没有什么不同。
当用户需要手动编辑某些东西的时候,JSON-config文件中会出现这种差异。 当你使用第一个例子时,给用户一些关于configuration的提示。
- 如果我们设置undefined的值会发生什么?
- 有没有一个标准的函数来检查JavaScript中的空,未定义或空白variables?
- undefined == undefined是真的。 但是undefined> = undefined是false?
- JavaScript – 确定一个属性是否被定义,并设置为“未定义”,或者是未定义的
- “types'double'的input参数的未定义函数'function_name'”。
- PHP错误信息“注意:使用undefined常量”是什么意思?
- 如何将variables与未定义的比较,如果我不知道它们是否存在?
- 带有jQuery的HTML5 – e.offsetX在Firefox中未定义
- 如何确定变量是'undefined'还是'null'?