有人能告诉我为什么这个Json无效吗?

有人能告诉我为什么这个Json无效吗?,json,validation,Json,Validation,我有这个json “关键1”:[零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,394,393,434,434,436,445,427,431,434,421,420,432,448,

我有这个json

“关键1”:[零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,394,393,434,434,436,445,427,431,434,421,420,432,448,465,498,580,584,667,691,685,732,783,817,842,879,1001,1098,1143,1221,1265,1339,1401,1419,1519,1513,1581,1629,1604,1613,1571,1592,1532,1561,1656,1610,1561,1579,1383,1181,1120,1140,950,932,972,974,1060,1077,1113,1147,1200,1144,1191,1225,1260,1276,1333,1334,1273,1241,1287,1263,1338,1301,1303,1373,129213271338137413691338133412812891230133213091298129812581302132812971233126512471265130012781271129113201324136713491382137613791433142914621525140514240613601383143813831413851377213871389134914011401272],“键2”:[零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零,零l、 零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、零、4.38、2.38、2.38、2.38、2.38、2.38、2.38、2.38、2.38、2.55、0.55、0.63、-0.55、-0.63、-1.01,--1.01,--0-0.63、-1.01,--1.01,--0-1.63、-1.01,--1.01,--1.01,--1.01,--1.63,--1-1.01,--1.01,--1.01,--1.63,--1.01,--1-1.1.01,--1.63,--1-1.63,--1-1.01,--1.63,--1-1.01,--1.83,-0.41,2.95,1.09,3.79,1.81,-0.65,2.27,-1.42,-1.58,2.49,2.71,3.25,1.87,2.38,-2.05,1.9,2.53,4.99,-0.53,2.16,1.94,-1.12,-0.5,-0.21,1.84,0,2.32,2.02,1.04,1.65,0.96,1.01,2.82,2.82,0.17,0.3,-0.88,3.17,2.87,-2.12,0.71,-3.96,1.62,-2.89,5.17,2.68,-2.48,-2.4,-0.42,-12.74,-13.34,-5.11,1.98,1.61,-1.92,4.15,6.32,8.35,1.21,5.15,2.47,4.5,-2.59,3.26,2.68,-1.53,1.06,3.81,0.19,-4.62,-2.45,3.61,-1.77,5.03,3.18,-0.18,4.57,0.38,1.78,0.65,1.65,-0.89]

在验证时出错


有人能帮我确定问题吗?

有效的JSON是对象或数组。因此JSON应该总是以
{
[
开头。在您的情况下,两者都没有。您只有一个名为“Key1”的属性,它不属于任何东西

试试这个:

{"Key1": [null,null,null,"etcetera"]}
结果是一个具有一个属性Key1的对象,该属性是一个包含所有值的数组

正如T.J.Crowder指出的,一个有效的文档不必是一个对象或数组,但可以是任何支持的JSON类型值(字符串、布尔值等)。但是,它还不支持这一点。无论如何,您的文档仍然是无效的,因为它不包含单个值,而是包含一个属性声明(用冒号分隔属性名及其值)。此类声明必须始终是对象的一部分


有关JSON表示法的更多详细信息,请参阅。

这是因为您的JSON无效,错误消息中给出了您要如何修复它。您必须用{}或[]括起字符串

例:

{“Key1”:[null,null,null,14,17,32]}
[{“Key1”:[null,null,null,14,17,32]}]


您可以使用验证JSON字符串,它将显示它是否包含错误。

“有效的JSON是一个对象或一个数组。”实际上,他们已经放弃了顶层是一个对象或数组的要求。这过去是正确的,但现在任何完整的有效JSON产品本身都是有效的。例如,
“foo”
现在是一个有效的独立JSON位,而几年前它不是。答案仍然正确,当然,因为OP所拥有的不是一个完整的有效产品,它只是其中的一部分。@t.J.Crowder感谢这一添加。事实上,本例中的问题是它不是一个完整的产品,而只是一个属性+值,而h必须是对象的一部分。像“foo”这样的独立字符串可能是有效的。JSONLint(或至少)不接受这一点,但是。JSONLint必须稍微过时。正如我所说,过去JSON“文档”和JSON“片段”之间存在这种区别,但这不是一个有用的区别,已经被删除。
{"Key1": [null,null,null,"etcetera"]}