javascript - 从具有重复键的 JSON 文件中检索值

标签 javascript jquery json

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

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

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

这只会返回最后一个定义。

最佳答案

问题是因为重复键在 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 循环)迭代每个定义及其示例。

关于javascript - 从具有重复键的 JSON 文件中检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19846551/

相关文章:

javascript - 使用 .filter 返回数组中的特定元素?

javascript - 如何使用 javascript/jQuery 对箭头键导航进行单元测试

javascript - 如何下载输入类型文件的内容/图像/数据?

javascript - 为什么我无法在 JavaScript 中通过键访问 JSON 对象?

django - Django REST Framework 中的命名 JSON 数组

java - Elastic Search 中不区分大小写的搜索

javascript - Ajax 请求未在 IE 中发送。 11

javascript - 查找数组中最长的字符串(即使它是数字数组)

javascript - 更改下拉列表中的值属性名称并使其起作用?

php - PHP 中的异步请求