Javascript 将数据拆分为两个json文件,一个用于分类结构,另一个用于(原始)数据项,这是一个好主意吗?

Javascript 将数据拆分为两个json文件,一个用于分类结构,另一个用于(原始)数据项,这是一个好主意吗?,javascript,json,Javascript,Json,我基本上是在构建一个快速而肮脏的课程目录,其中包含多个层次类别和属于这些类别的不同级别的课程 在旧的实现中,每个主要类别都是自己的HTML页面,与该类别相关的所有课程都是用HTML编写到该页面中的。该目录过去主要是静态的,因此效果很好,但现在可能会更频繁地添加课程和类别,并且一些用户视图选项将来可能会更改/扩展 我想我应该将所有原始数据(课程和目录结构)分离成JSON,然后根据这些数据生成视图。我认为这样可以更容易地维护内容,而无需处理适当的CMS或数据库。每当我需要添加一门课程时,我都会将它放

我基本上是在构建一个快速而肮脏的课程目录,其中包含多个层次类别和属于这些类别的不同级别的课程

在旧的实现中,每个主要类别都是自己的HTML页面,与该类别相关的所有课程都是用HTML编写到该页面中的。该目录过去主要是静态的,因此效果很好,但现在可能会更频繁地添加课程和类别,并且一些用户视图选项将来可能会更改/扩展

我想我应该将所有原始数据(课程和目录结构)分离成JSON,然后根据这些数据生成视图。我认为这样可以更容易地维护内容,而无需处理适当的CMS或数据库。每当我需要添加一门课程时,我都会将它放入json文件中

第一个问题:你会推荐这个吗

第二个问题:如果您认为使用JSON是一个好主意,您会将分类结构从课程中分离为两个JSON文件,然后使用JS操作它们吗?或者,您会在目录类别结构中嵌入一个JSON,其中包含课程数据吗

这是我所想的一个例子。在将这两个数据输出到HTML列表视图之前,我可能会使用下划线正确地合并这两个数据(将课程推送到相应类别中的“课程”数组中)

// JSON of categorical STRUCTURE / HIERARCHY
{
    "catalog":{
        "name":"Course Catalog",
        "categories":[
            {
                "name":"Category A",
                "categories":[
                    {
                        "name":"Category A1",
                        "categories":[
                            {"name":"Category A1a"}
                        ]
                    },{
                        "name":"Category A2",
                        "categories":[
                            {"name":"Category A2a"},
                            {"name":"Category A2b"},
                            {"name":"Category A2c"}
                        ]
                    },{
                        "name":"Category A3",
                        "categories":[
                            {"name":"Category A3a"},
                            {"name":"Category A3b"},
                            {"name":"Category A3c"}
                        ]
                    }
                ]
            },{
                "name":"Category B"
            },{
                "name":"Category C"
            }
        ]
    }
}

// JSON array of all courses (to be plugged into the structure later through code,
// then output to HTML as nested lists etc.)
{
    "courses":[
        {
            "name":"Course AAA",
            "category":"Category A1a",
            "abstract":"Some sort of short string description.",
            "description":"Some sort of longer string description that will be used in the object."
        },
        {
            "name":"Course BBB",
            "category":"Category A1b",
            "abstract":"Some sort of short string description.",
            "description":"Some sort of longer string description that will be used in the object."
        },
        {
            "name":"Course CCC",
            "category":"Category B",
            "abstract":"Some sort of short string description.",
            "description":"Some sort of longer string description that will be used in the object."
        },
    ]
}

首先,如果您的数据要包含成百上千个条目,我会使用数据库来管理它。它只会让生活变得更简单,减少数据损坏的机会

它还将加快应用程序的速度,因为数据库查询比文件查询快得多(除非预加载文件;但如果文件很大,预加载也会影响应用程序的性能)

但是,如果您没有那么多(这是主观的,但我会说少于100个)需要跟踪的条目,您可以按照您建议的方式使用json进行跟踪。(这几乎就是我们所做的)

如果您最终采用这种方式,我将使用多文件方法,这将基本上为您提供与多表数据库相同的结构


最后,我将研究如何将json数据集成到视图中。特别是对于2文件设置,请使用(该页第四个示例。

您将有多少门课程?它们是否会经常更新?如果您有很多课程,或者希望数据经常更改,或者是以您不想手动管理的卷的形式更改,请查看数据库。谢谢。目前估计大约有100门,在我们切换到更好的解决方案之前最多300门。更新,可能没有不太经常。我会说一个月一次。如果完全由我决定,我可能会完全按照你的建议去做——建立一个数据库,并用一些CMS来管理它。但是现在我们正在寻找一个权宜之计解决方案,在我们过渡系统时。我不确定我们将来会有什么系统资源可供我们使用。:)谢谢你的建议。我想我们将要处理大约100门课程。在我们过渡到DB和CMS之前,我无法想象会超过300门。我们只是不确定在这一点上,未来会有哪些资源可用于此类项目,但我们现在需要一个权宜之计。我将看看pure和你举的例子。谢谢你的指点!