JSON数组结构变体

Mik*_*keS 7 json

以下是3种JSON数组结构格式......

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

格式#1

{"People": [
  {
    "name": "Sally",
    "age": "10"
  },
  {
    "name": "Greg",
    "age": "10"
  }
]}
Run Code Online (Sandbox Code Playgroud)

第二个是略微变化,命名数组的元素.我个人并不关心它; 你没有在代码中命名数组的元素(它们是通过索引访问的),为什么要用JSON命名它们?

格式#2

{"People": [
  "Person1": {
    "name": "Sally",
    "age": "10"
  },
  "Person2": {
    "name": "Greg",
    "age": "10"
  }
]}
Run Code Online (Sandbox Code Playgroud)

最后一个是另一个变体,非常类似于格式#2,但我有一个预感,这个是不正确的,因为它似乎有不属于的额外花括号.

格式#3

{"People": [
  {
    "Person1": {
      "name": "Sally",
      "age": "10"
    }
  },
  {
    "Person2": {
      "name": "Greg",
      "age": "10"
    }
  }
]}
Run Code Online (Sandbox Code Playgroud)

同样,我相信Format#1是有效的,因为它是JSON.org中概述的JSON数组格式.但是,格式#2格式#3怎么样?那些被认为是有效的JSON吗?如果是,那些格式来自哪里?我没有在JSON.org或维基百科上看到它们.

Eug*_*eck 8

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

  • #1给你一个数组对象,每一个姓名和年龄的String类型属性
  • #3给你一个数组对象,每一个对象属性,每一个姓名和年龄String类型的属性.

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