2011-06-28 92 views
0

JSON文件我已經是以下幾點:如何通過javascript訪問JSON元素?

{ 
    "root": { 
    "Quizsize": null, 
    "{urn:abc.com/xmlns/mona/page}page": [ 
     { 
     "@xid": "page1623", 
     "@title": "Quiz Landing Page", 
     "{urn:abc.com/xmlns/mona/page}comment": null, 
     "{urn:abc.com/xmlns/mona/page}skills": null, 
     "{urn:abc.com/xmlns/mona/page}info": { 
      "{urn:abc.com/xmlns/mona/common}property": { 
      "@name": "quiz_landing", 
      "@value": "true" 
      } 
     } 
     } 
    ] 
    } 
} 
} 

我加載使用此JSON文件:

var jsondata = eval("("+chapterRequest.responseText+")") ; 
Root = jsondata.root 

現在我要訪問@xid這是 「page1623和@name這是」 quiz_landing 」我不知道如何做到這一點,請幫助。

感謝

+0

你能澄清你說「訪問」是什麼意思?如果你想讀取屬性值,你必須遍歷它們,如果你想要一個包含節點,你也必須遍歷屬性也尋找一個匹配的值。 –

回答

4

JSON.parse(x)是大於更好的eval(x)的,對於一個。儘管如此,它並不是由某些瀏覽器本地支持的。如果您要訪問@xid,「甕:abc.com/xmlns/mona/page}頁」指向一個數組,其第一個元素是一個對象。

所以使用Root [「{urn:abc.com/xmlns/mona/page} page」] [0] [「@ xid」]。或者混合括號和點符號。你的選擇,真的。

+0

現在的錯誤是:jsondata.root是不確定的,它不能夠訪問root屬性。 – Anshul

+0

它現在的工作,問題是,我使用亙古不變的有根property..Thanks史蒂夫 – Anshul

+0

@Steve王一些其他的JSON文件:THX爲UR答案「JSON.parse(x)是不是更好的eval(X)」 – user367134

1

當鑰匙是不是有效的標識符,可以使用object['key']代替object.key,所以jsondata.root['{urn:abc.com/xmlns/mona/page}page'][0]['@xid']

+0

感謝entonio ........你的答案是正確的 – Anshul