2013-05-13 105 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]访问原始对象。