2012-12-10 133 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

語言方式,「未定義」綁定到整個前面的句子(如果沒有逗號)或「語言變量」,而不是「數據」(更進一步)。我相信你被誤解了。 –