【问题标题】:Reading JSON with JQuery : Field Names使用 JQuery 读取 JSON:字段名称
【发布时间】:2011-09-20 13:15:54
【问题描述】:

我有一个如下所示的 json 有效负载;

{ "ABW": "Aruba", "AFG": "Afghanistan", "AGO": "Angola" }

如您所见,它将包含所有国家/地区。我可以读取此处提到的 JSON 有效负载;

http://webhole.net/2009/11/28/how-to-read-json-with-javascript/

这里的一个问题是,我将如何阅读这里的国家代码?它们会因每个值而改变。

我的目标是将国家代码分配给选项的值属性,并将国家名称分配给选择列表中选项的文本。

【问题讨论】:

  • 只是为了节省一些调试时间:所有字符串(包括键名)所需的分隔符是“,而不是”。正如引用的那样,JSON 是无效的,所以如果你从你的实际来源...
  • @TJCrowder,我在尝试制作小提琴时遇到了这个问题。我必须转换所有的"
  • 为什么不显示格式你的 json 像这样 [{"Code":"ABW","Name":"Aruba"},{"Code":"AFG","Name":"Afghanistan "}]
  • @Amin -- 查看对@RobotWoods 回答的评论...
  • @TJCrowder 不错。谢谢!

标签: javascript jquery json select drop-down-menu


【解决方案1】:

不需要任何 jQuery。好的 ol' 纯 JavaScript 来拯救:

var countries = { "ABW": "Aruba", "AFG": "Afghanistan", "AGO": "Angola" };

for(code in countries){
    alert("code: " + code + "\n" + "country: " + countries[code]);
}

小提琴:http://jsfiddle.net/maniator/2adKZ/

【讨论】:

  • 这似乎是一个简单直接的解决方案。
  • 哎呀,删除了我的评论,询问它如何知道要返回哪一部分(我会在此期间阅读)。谢谢。
【解决方案2】:

你能改变响应结构吗?到(也许):

{"countries":[{"code":"ABW","name":"Aruba"},{"code:"AFG","name":"Afghanistan"}]}

【讨论】:

  • 为什么?没有理由这样做,它只会增加开销。 (不是我的 DV,顺便说一句,虽然我可以看到它......)
  • 如果您有兴趣:Myths and realities of for..in
  • @TJ,谢谢!每当我有可能未知的标签时,我都会去一个数组(因为它似乎很多都基于其他答案和 cmets)所以我确信for in 将帮助更多的不仅仅是我自己。
【解决方案3】:

为什么不把它做成一个对象数组,然后循环遍历每个对象呢?

{"results" : [
     {countryCode : "ABW",
      country : "Aruba"},
     {countryCode : "AFG",
      country : "Afghanistan"}]

然后循环遍历数组中的每个对象以获取国家代码和国家名称。

【讨论】:

  • 查看@RobotWoods 回答的评论
  • 啊,忘记了 JS 的 for in 表示法:P
【解决方案4】:

当 JQuery 使用 each 函数时,索引由第一位信息的名称组成 所以在{“ABW”:“阿鲁巴”,“AFG”:“阿富汗”,“AGO”:“安哥拉”} 第一个对象的索引将是“ABW”,值是“Aruba”

var countries = { "ABW": "Aruba", "AFG": "Afghanistan", "AGO": "Angola" }
$.each( countries , function(index) {
    var code = index;
    var country = countries[index] 
})

$.each( countries , function(index) {
    var code = index;
    var country = this;
})

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 2023-04-02
    • 2019-07-06
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多