javascript - 使用分配的 ID 创建 JSON 数组

标签 javascript jquery json multidimensional-array

过去我已经用 JSON 做了相当多的工作,但我从来不需要编写自己的 JSON 对象。现在我的任务是这样做,但我在创建它时遇到了一些麻烦,以便在路上给我带来最少的麻烦。基本上,我想第一次就把事情做好。

我的 JSON 数组最终会变得更大,但出于这些目的,我将使其保持较小。

这是我目前所做的:

{
    "ClassGroup": [
        {
            "id": "123",
            "classname": "Class 1",
            "isActive": "true",
            "isExpanded": "false",
            "students": [11, 22, 33, 44, 55],
            "isSelected": [11, 22, 33, 44, 55]
        },
        {
            "id": "456",
            "classname": "Class 2",
            "isActive": "false",
            "isExpanded": "false",
            "students": [66, 77, 88, 99],
            "isSelected": [66, 88, 99]
        }
    ],
    "Student": [
        {
            "id": "11",
            "first": "Student",
            "last": "One",
            "classes": [123],
            "isSelected": [123]
        },
        {
            "id": "22",
            "first": "Student",
            "last": "Two",
            "classes": [123],
            "isSelected": [123]
        }
    ]
}

目前数组中缺少许多学生和类(class),因此请忽略您看到的任何缺少的 ID。

当这样做并运行 jQuery.getJSON 函数时,我最终得到一个像这样的数组:

data['ClassGroup'][0]['id'] will equal "123" data['ClassGroup'][1]['id'] will equal "456" data['Student'][0]['id'] will equal "11"

这样做的问题是,当给定一个类的 ID 时,我无法轻松找到该类。例如,如果我想查找类“456”的名称,我必须遍历数组,直到找到 X ,这样 data['ClassGroup'][X] ['id'] 将等于“456”,而不是仅仅执行 data['ClassGroup']['456']['classname']

我想做的是重写这个 JSON,使 $.getJSON 的结果与以下内容一致:

data['ClassGroup']['123']['classname'] = "Class 1" data['ClassGroup']['456']['classname'] = "Class 2" data['Student']['11']['last'] = "One"

我想你已经明白了。

我的处理方式正确吗?

最佳答案

重写您的 JSON,使其看起来像这样:

{
    "ClassGroup": { /* <- Changed from [ to { */
        "123": {    /* <- The class id is now the array key */
            "id": "123",
            ...
        },
        "456": {
            "id": "456",
            ...
        }
    } /* <- Changed from ] to } */
}

关于javascript - 使用分配的 ID 创建 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22843849/

相关文章:

javascript - 将用户重定向到存储在变量中的 url (Javascript)

javascript - 清除文本字段 JavaScript 中的文本

javascript - 动态更改 Kendo MultiSelect 的 DataTextField

javascript - 使用 json 的 java 脚本创建类似 Hashmap 的实现

java - 我如何更改字符串字段的值(格式 json)?

javascript - Backbone : how can i add event for html5 video?

javascript - 如何将自定义CSS和Javascript添加到wordpress中的tinymce。

javascript - 将 json 从 javascript 发送到 php

javascript - 谷歌可视化数据表仪表板中的总和列

python - 在 Python 中返回嵌套 JSON 对象中的值