2013-05-13 143 views
1

當前我試圖從JSON獲取數據到我的SelectBox。使用jQuery從JSON獲取數據

我在這裏展示其XML格式,但實際的數據會以JSON格式:

<1> 
    <book_able>0</book_able> 
    <CODE>AF</CODE> 
    <NAME>Afghanistan</NAME> 
</1> 

<2> 
    <book_able>1</book_able> 
    <CODE>AL</CODE> 
    <NAME>Albanie</NAME> 
</2> 

<3> 
    <book_able>1</book_able> 
    <CODE>DZ</CODE> 
    <NAME>Algerie</NAME> 
</3> 

<6> 
    <book_able>1</book_able> 
    <CODE>AS</CODE> 
    <NAME>Samoa Americaines</NAME> 
</6> 

這裏的數字表示該國的秩序。但數字沒有正確排列。

例如:在<1>之後的下一個數字是<198>,因此很難使用循環獲取。有沒有在jQuery和JSON中的這種方法?

+4

您爲我們提供了「易於理解」的XML格式的JSON嗎? – 2013-05-13 12:37:07

+4

請通過添加實際的JSON讓我更難理解 – devnull69 2013-05-13 12:37:52

+0

您不應該使用循環來通過編號獲取數據。由於數字是每個JSON項目的關鍵,所以您應該可以編寫'myJSONString.198'或'myJSONString [198]' – jbabey 2013-05-13 12:42:56

回答

0

我想你的分析對象是這樣的:

var obj = { 
    "1": { book_able:0, code:"AF", name:"Afghanistan"}, 
    "2": { 
    ... 
} 

,沒有理由的鑰匙是「有序」:給人的JavaScript對象方面關鍵的迭代順序沒有保證。

然後你可以將此地圖改變這樣一個真正的數組:

var arr = []; 
for (var i=1;; i++) { 
    if (!obj[i]) break; 
    arr[i] = obj[i]; 
} 

請注意,您主要是由這樣獲得length,你還可以使用obj[i]訪問原始對象。