0

有人可以向我解释如何制作一个在数组中包含嵌套数组的 json 吗?

假设我有两个表,第一个是“组”,第二个是“学生”,我想做一个这样的 json:

[
group: "X"
{
    {
        id: "1",
        name: "Student z",
    },
    {
        id: "2",
        name: "Student b",
    }
},
group: "N"
{
    {
        id: "3",
        name: "Student c",
    },
    {
        id: "4",
        name: "Student a",
    }
} ]

我一直都是做简单的json,根本不分组,但这次不一样。

此外,组是动态的,它们没有定义并且可能随时间而变化。

我知道这是一个愚蠢的问题,但我希望有人帮助我,拜托。

4

2 回答 2

2

让我们从一个对象结构开始,其中组名是键,如下所示:

{X: details-about-X, N: details-about-N}

对于每个组,我们需要一个学生列表 - 所以每个组都需要包含一个数组:

{
    X: [item1, item2],
    N: [item1, item2]
}

或以另一种方式写成,

{
    X: [
        item1,
        item2
    ],
    N: [
        item1,
        item2
    ]
}

数组中的每个项目都是一个有名字和 id 的学生——所以是一个学生对象:

{
    id: 1,
    name: "Student z"
}

将其作为数组项插入到原始结构中,我们得到:

{
    X: [
        {
            id: 1,
            name: "Student z"
        },
        {
            id: 2,
            name: "Student b"
        }
    ],
    N: [
        {
            id: 3,
            name: "Student c"
        },
        {
            id: 4,
            name: "Student a"
        }
    ]
}

如果将此结构保存到 javascript 变量groups中,您将能够访问组 N 中的学生列表,如下所示:

groups.N

..N组第一个学生的详细信息为:

groups.N[0]

...以及第 N 组中第一个学生的姓名为:

groups.N[0].name

另一种方法是从一组组开始然后构建一个类似这样的结构:

groups = [
    {
        group: 'X',
        students: [list-of-students, same-as-above]
    }
    {
        group: 'N',
        students: [list-of-students, same-as-above]
    }
];

在这种情况下,您可以通过以下方式找到您的第一个组的名称:

groups[0].name

以及第一组中第一个学生的姓名:

groups[0].students[0].name
于 2013-07-28T03:23:13.790 回答
0

我不确定问题是什么,但这样的对象是这样的:

{ 
   X : [
   {
      id: "1",
      name: "Student z",
   },
   {
      id: "2",
      name: "Student b",
   }
   ], N : [

   {
      id: "3",
      name: "Student c",
   },
   {
      id: "4",
      name: "Student a",
   }
   ]
}

那是你想要的吗?

于 2013-07-28T03:20:24.283 回答