【发布时间】:2019-04-18 11:27:37
【问题描述】:
我目前正在构建一个网络工具,它使用户能够以字符串的形式生成选项包。为了选择他想要的选项,他使用了一个具有不同输入(单选、复选框)的表单,该表单由dictionary.json 生成,该dictionary.json 当前包含所有可用选项及其代码,格式如下(可能会更改):
[
{
"id": 0001,
"title":"foo",
"type":"radio",
"options":[
{
"bar":"",
"foo":"489",
"foobar":"489+490"
}
]
},
{
"id": 0002,
"title":"something",
"type":"check",
"options":[
{
"everything":"M016",
"evenmore":"M139"
}
]
},
[...]
如您所见,它基本上是一个小型数据库。问题是这些选项相互依赖,所以如果foo 是foobar,它可能会确定something 肯定是evenmore 并且不能更改为everything。 如何在dictionary.json 中映射这些依赖项,以便生成的表单能够可靠地将由其他选项确定的选项变灰?
结构必须灵活,以便可以插入新的依赖项,并可靠地生成新表单或根据它们验证现有输出。也可能存在依赖于多个其他选项的选项。我想不出保存这些依赖项的聪明方法,我想知道 JSON 是否适合在这里使用。
欢迎任何提示或想法。谢谢!
【问题讨论】:
-
我建议看看 Joi:npmjs.com/package/@hapi/joi。您可以使用非常复杂且可扩展的 joi 模式来验证几乎任何 JSON 对象。
-
@AnandUndavia 感谢您的评论。我不确定这将如何应用在这里,因为发生的唯一验证是规则集(字符串)是否“允许”,如“它不包含相互排除的规则”
-
这些选项是单个对象专有的还是
"type"专有的?例如。"bar"选项可以出现在其他对象和/或类型上吗?
标签: javascript json database data-structures structure