【问题标题】:Fetching Data from JSON using jQuery使用 jQuery 从 JSON 中获取数据
【发布时间】:2013-05-13 12:35:38
【问题描述】:

目前正在尝试将数据从 JSON 提取到我的 SelectBox。

这里我展示了它的 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>

这里的数字表示国家的顺序。但是数字没有正确排序。

例如:&lt;1&gt; 之后的下一个数字是&lt;198&gt;,因此很难使用循环获取。在 jQuery 和 JSON 中有这样的方法吗?

【问题讨论】:

  • 你给我们 XML 格式的 JSON 是为了“容易理解”?
  • 请通过添加实际的 JSON 让我更难理解
  • 您不应该使用循环按数字获取数据。由于数字是每个 JSON 项的键,你应该可以写 myJSONString.198myJSONString[198]

标签: jquery xml json


【解决方案1】:

我想你解析的对象是这样的:

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] 访问您的原始对象。

【讨论】:

    猜你喜欢
    • 2018-06-04
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多