2013-02-27 106 views
1

我有一個xml文件已被轉換爲下面列出的json。我一直試圖找出如何從每個屬性中檢索-Name和-Value,但沒有運氣。我猜我需要創建一個等於jsonobj.Media.Attribute [i]的子對象,但是一旦我這樣做了,我就無法訪問-Name或-Value。有什麼建議麼?從JSON對象檢索值

jsonobj= { 
     "Media": { 
      "Attribute": [ 
       { 
       "-Name": "Keywords", 
       "-Value": "keyword value" 
       }, 
       { 
       "-Name": "Title", 
       "-Value": "title value" 
       }, 
       { 
       "-Name": "Description", 
       "-Value": "description value" 
       }, 
       { 
       "-Name": "Author", 
       "-Value": "author value" 
       }, 
       { 
       "-Name": "Copyright", 
       "-Value": "copyright value" 
       } 
      ] 
      } 
     }; 
+1

提示:您可以使用'['-Name']'來訪問對象的元素。 – 2013-02-27 19:25:53

+0

迭代jsonobj.Media.Attribute並使用['-Name']檢索值。 – Derek 2013-02-27 19:28:05

+0

我創建了一個子對象並試圖使用子對象[0] .Name(返回undefined)來訪問它。我已經嘗試了子對象[0] .-名稱(拋出一個錯誤),如果我只是在subobj上做一個console.debug,我得到對象{-Name:「關鍵字」, - 值:「關鍵字值」}。我似乎無法從中得到任何其他東西。 – user1549568 2013-02-27 19:29:17

回答

2

這會提醒你正在尋找的值:

var list = jsonobj.Media.Attribute 
for(index in list) 
{ 
    var obj = list[index]; 
    var name = obj["-Name"]; 
    var value = obj["-Value"]; 

    alert(name); 
    alert(value); 
} 
+0

非常好!謝謝。一旦我看到代碼,很清楚發生了什麼。 – user1549568 2013-02-27 19:37:48

1

迭代jsonobj.Media.Attribute和使用[ '雜牌']檢索值

for(var i = 0; i < jsonobj.Media.Attribute.length ; i++) 
{ 
var attr = jsonobj.Media.Attribute[i] 
alert(attr["-Name"]); 
alert(attr["-Value"]); 
} 
0

您不能在代碼中使用-,因爲它是一個操作符,並且JS不會將其識別爲方法。

要解決您的問題,您可以使用其他方式訪問屬性。

否則,代碼: jsonobj.Media.Attribute[i].-Name

您可以使用: jsonobj.Media.Attribute[i].["-Name"]

什麼是調用相同,對於一個例子: jsonobj.["Media"].Attribute[i].["-Name"]

0

它無法識別的關鍵屬性。說不能讀取未定義的屬性'屬性'。