2012-12-10 136 views
21

我遇到了这个JSON代码。我注意到它使用undefined值。我在哪里可以找到关于此值类型的更多信息?JSON未定义值类型

tracks:[ 
    (  { 
     codec:"h264", 
     language:undefined, 
     id:1, 
     bitrate:785236, 
     content:"video" 
    }  ), 
    (  { 
     codec:"aac", 
     language:undefined, 
     id:2, 
     bitrate:75969, 
     content:"audio" 
    }  ) 
    ], 
+2

确定的JSON是有效的?括号(首先由MuraliPrasanth记录)至少看起来可疑。 –

+0

这不是有效的JSON。括号是不允许的。 “undefined”字面也不是。 'undefined'是javascript中的一个值:http://www.ecma-international.org/ecma-262/5.1/#sec-4.3.9 –

+0

你确定这是JSON吗?看起来像[对象字面]的片段(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects)也是我的。 –

回答

46
  • 不确定是不是一个有效的JSON值,即使它是有效的 的JavaScript。从the official json standard (ECMA-404,第5节):

    甲JSON值可以是一个对象,数组,数字,字符串,TRUE,FALSE,或为空。

  • 对JSON,使用代替未定义{ "something": null }

+4

如果您希望某个值未定义,只需从JSON中完全省略即可。这样,当你在解析之后尝试读取它时,它将是未定义的。 – totymedli

+1

但是,假设您完全知道回应应该是什么样子。如果你正在构建服务器和客户端,那很好,但情况往往不是这样。 – Ringo

+0

当然。这不是一个最佳解决方案,只是一种解决方法,因为无论何种原因,您都必须返回未定义的值。 – totymedli

4

undefined是一种特殊的类型,其中,它仅仅表明可变language未初始化,或者可以是它的尚未定义。

javascriptnull简单地表明不存在一个值,并且它也可以被用于指示数字和字符串以及objects.The undefined值也代表不存在的值“无值”,它是的值尚未初始化的变量以及从object属性获得的值或不存在的array元素 undefined是预定义的全局变量,它被初始化为未定义的值。

nullundefined没有任何属性或methods.In事实上,使用.[]访问这些值的属性或方法引起TypeError

+0

将一个定义的值放入一个变量中使其不是未定义的。唯一的选择是将_undefined_值存储到该属性中,或者未自动生成JSON。 –

+0

数据到未定义的语言变量 –

+0

语言方式,“未定义”绑定到整个前面的句子(如果没有逗号)或“语言变量”,而不是“数据”(更进一步)。我相信你被误解了。 –