我正在使用JavaScript中的特定JSON对象,该对象包含多个非固定属性(我的意思是将来可能会更改的属性)。
我一直在从事以下工作:
{
"propertyA": {
"value": "0",
"type": "A"
},
"propertyB": {
"childs": {
"propertyC": {
"prop": "value",
"anotherProp": "randomValue"
}
},
"type": "B"
}
}
如您所见,并非所有属性都是相同的,也不是遵循某种模式。那是因为我用它来存储一些配置。问题是,如果我将来要更改某些内容,例如将"propertyA"
更改为"propertyA": { "config": "0", type: "A" }
,则无法更改读取这些属性的javascript来读取新属性而忘记旧属性,因为如果我收到旧的配置并尝试访问由最新配置版本名称标识的属性,则会破坏应用程序。
我在想类似的事情:检查JSON属性>验证JSON“版本”>进行相应更新>保存更新>读取以新格式更改的JSON属性
到目前为止,我尝试的是在我的JSON中添加一个"version": "1.0"
字段,然后创建一个更新程序以检查所有版本。以给出的示例为例,如果JSON的最新版本为1.2,则将"propertyA"
更新为1.1和1.2。
但是我面临2个问题:
基本上,我想知道如何快速更新JSON配置的版本,无论接收到的配置和最新配置之间有多少不同版本(例如累积更新或类似的东西,它们都会更新到最新版本)版本(无论哪个版本是旧版本),并且尽可能将其不存储在相同的JSON或DB中(例如,根据其具有的属性确定版本)。
PS:我正在使用Typescript,如果它有助于找到更简单的解决方案。