使用重复键从JSON文件中检索值

时间:2013-11-07 20:57:18

标签: javascript jquery json

http://chriscargile.com/dictionary/tojson/moon.js

例如,我想在这里检索单词“moon”的所有定义。 我试过使用jQuery

$.getJSON(url, function (json) {
    alert(json.definition)
})

这只会让我回到最后一个定义。

1 个答案:

答案 0 :(得分:4)

问题是因为JSON中的重复键无效。您需要在作为数组一部分的对象中创建每个posdefinition属性。如果您将JSON文件粘贴到此validator中,您就会明白为什么只能返回一个条目。

正确的格式是这样的:

{
    "lemma": "moon",
    "definitions": [
        {
            "pos": "n",
            "definition": "the natural satellite of the Earth",
            "samples": [
                "the average distance to the Moon is 384,400 kilometers",
                "men first stepped on the moon in 1969"
            ]
        },
        {
            "pos": "n",
            "definition": "any object resembling a moon",
            "samples": [
                "he made a moon lamp that he used as a night light",
                "the clock had a moon that showed various phases"
            ]
        }
    ]
}

然后,您可以使用$.each(如果您想要原生的话,可以使用普通的for循环来迭代每个定义及其样本。