Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSON数组结构变体_Json - Fatal编程技术网

JSON数组结构变体

JSON数组结构变体,json,Json,下面是3种JSON数组结构格式 第一个是JSON.org上概述的,是我熟悉的: 格式#1 {"People": [ { "name": "Sally", "age": "10" }, { "name": "Greg", "age": "10" } ]} 第二个是命名数组元素的一个微小变化。我个人不喜欢它;您不需要在代码中命名数组元素(它们是通过索引访问的),为什么要用JSON命名呢 格式#2 {"People": [ "Person1": {

下面是3种JSON数组结构格式

第一个是JSON.org上概述的,是我熟悉的:

格式#1

{"People": [
  {
    "name": "Sally",
    "age": "10"
  },
  {
    "name": "Greg",
    "age": "10"
  }
]}
第二个是命名数组元素的一个微小变化。我个人不喜欢它;您不需要在代码中命名数组元素(它们是通过索引访问的),为什么要用JSON命名呢

格式#2

{"People": [
  "Person1": {
    "name": "Sally",
    "age": "10"
  },
  "Person2": {
    "name": "Greg",
    "age": "10"
  }
]}
最后一个是另一个变体,非常类似于格式#2,但我有一种预感,这一个是不正确的,因为它似乎有额外的花括号,它们不属于

格式#3

{"People": [
  {
    "Person1": {
      "name": "Sally",
      "age": "10"
    }
  },
  {
    "Person2": {
      "name": "Greg",
      "age": "10"
    }
  }
]}
同样,我相信格式#1是有效的,因为它是JSON.org上概述的JSON数组格式。但是,格式2和格式3如何?这两个选项中有一个被认为是有效的JSON吗?如果是,这些格式来自哪里?我在JSON.org或Wikipedia上没有看到它们的轮廓

1和3都是(几乎-缺少逗号)有效的JSON,但编码不同的结构:

  • #1为您提供一个数组,其中包含对象,每个对象都具有名称和年龄字符串属性
  • #3为您提供一个数组,其中包含对象,每个对象都有一个对象属性,每个对象都有名称和年龄字符串属性

#2无效:数组(由
[
..
]
定义)可能不包含属性名。

格式1的解决方案 默认情况下:

array=[];
object={};
JSON代码:

var Json = {
    People:[]
};
Json.People.push({
     "name": "Sally",
     "age": "10"                        
});
Json.People.push({
     "name": "Greg",
     "age": "10"                        
});
JSON结果:

{“人”:
[
{
“姓名”:“莎莉”,
“年龄”:“10”
},
{
“姓名”:“格雷格”,
“年龄”:“10”
}
]

}

事实上,它们都是无效的:哎呀,我遗漏了一些标点符号。。。修理。