为什么这个JSON文档似乎无效?

时间:2017-11-03 16:42:20

标签: javascript json

我对JSON文档并不是这样,我遇到了问题。我试图用https://jsonlint.com/

验证这个简单的JSON文档
{
    "forecast": [
        "day": [],
        "day": []
    ]
}

预测是一组meteo预测,是一个数组,其中包含一些与特定日期的早晨,下午和晚上预测相关的对象。我会在第二次充实它。

问题是,当我尝试验证此文档时,我通过以前的验证工具获取以下错误消息:

Error: Parse error on line 3:
...forecast": [     "day": [],      "day": []   ]
----------------------^
Expecting 'EOF', '}', ',', ']', got ':'

为什么呢?问题是什么?如何创建这样的正确结构?

5 个答案:

答案 0 :(得分:4)

数组[]包含值列表

一组"property": value对需要表示为对象{}

此外,虽然在某个对象中(技术上)允许重复的属性名称,但只接受最后一个值。

也许您正在尝试创建一个对象数组?

{
    "forecast": [
        { "day": [] },
        { "day": [] }
    ]
}

答案 1 :(得分:1)

"forecast": [
    "day": [],
    "day": []
]

forecast键包含一个对象,而不是一个数组,因此需要:

"forecast": {
    "day1": [],
    "day2": []
}

"forecast": [
    { "day": [] },
    { "day": [] }
]

答案 2 :(得分:0)

因为“day”在一个数组中,但你像对象一样使用它(“property:value”表示法)。 将方括号更改为花括号或使用适当的数组结构。有意义吗?

答案 3 :(得分:-1)

forecase实际上应该是一个对象,而不是一个数组。

{
"forecast": {
    "day": [],
    "day": []
}
}

答案 4 :(得分:-1)

在JSON文件中,数组代表新对象或值如下:

{
    "forecast": [{
            "day": []
        },
        {
            "day": []
        }
    ]
}

{
    "forecast": [
        ["morning", " afternoon", " night"],
        ["morning", "afternoon", " night"]
    ]
}