< ---- ----声明> 我想提供许多细节以保证安全,如果您不需要背景故事,请随时跳过问题。
< ----- ----背景故事>
我正在开发一个触摸屏目录,显示我中心的所有员工。目录分为几个部门(管理,销售,标准等)当我们开始为目录构建JSON文件时,我们按部门分解它们,因此我们有一个management.json文件,sales.json等等。我们即将完成该目录的1.0版本并部署它,但是现在我们已经构建了所有JSON文件,我们看到有一个小问题。许多员工都属于多个类别,当我们将所有JSON文件分开时,这不是一个大问题,因为我们可以拥有并输入" Mark Jones"在sales.json和management.json中并没有冲突。然而,有人建议并且正确地说,能够根据某些标准(最好的教师,认证评估员等)过滤员工会很棒。没有一个JSON文件,我无法看到如何做到这一点。
< ---- ----问题>
我们希望将所有员工都放在一个JSON文件中,并能够使用AngularJS对其进行过滤。这让我想到了我的问题,我可以将两个值(或者更多我认为)附加到一个键上吗?如下:
< ----当前结构----->
(management.json)
[{
"fName": "Tom",
"lName": "Jones",
"bobAward": "false",
"department": "management"
}, {
"fName": "Bill",
"lName": "Hunter",
"bobAward": "true",
"department": "management"
}]
(sales.json)
[{
"fName": "Tom",
"lName": "Jones",
"bobAward": "false",
"department": "sales"
}, {
"fName": "Steve",
"lName": "Webb",
"bobAward": "true",
"department": "sales"
}]
< ----建议文件---->
(employees.json)
[{
"fName": "Tom",
"lName": "Jones",
"bobAward": "false",
"department": "management sales"
}, {
"fName": "Bill",
"lName": "Hunter",
"bobAward": "true",
"department": "management"
}, {
"fName": "Steve",
"lName": "Webb",
"bobAward": "true",
"department": "sales"
}]
我希望能够过滤部门==销售并让Tom和Steve出现,并过滤部门==管理层并让汤姆和比尔出现。如果您需要更多信息或者有更简单的方法可以让我知道,我完全迷失了:)
注意:我们无法访问任何服务器,因此任何服务器依赖语言都不在我们面前。
答案 0 :(得分:2)
无论您做什么,每位员工都需要一个唯一的整数ID。否则,你迟早会雇用第二个约翰史密斯,并学习有关唯一标识符的艰难方法。如果你的数据库人员在这一点上制造了一个真正的障碍(我从你关于访问服务器的评论中推断出一些组织功能障碍),我不确定该推荐什么。但在这种情况下,下面的选项1可能会更好。
选项#1:
"department": ["sales", "management"],
选项#2:
将部门放在第二个“表”中(比喻说);这是数据库101.使用您的员工ID号来指定成员资格。如果根本没有办法为员工建立正确的唯一标识符,那么这是不可能的。
"departments": [
{
"name": "sales",
"members": [ 2, 12, 13 ]
},
]
答案 1 :(得分:1)
我根据你的实际需要改进了我的答案:
http://www.jsoneditoronline.org/?id=24b116863b78d086722b52be21a83221
这代表JSON格式,如:
[{
"fName": "Tom",
"lName": "Jones",
"departments": {
"sales": null,
"management": {"joined-date":"2014-06-01T00:00:00", "position":"Senior Manager"},
"management sales": null
}
}]
基本上,所有对象节点都是用大括号{" x":" y"和方括号中的数组[" x"," y" ],所有递归。
然后在此处验证您的JSON:jsonformatter。