使用Javascript/JQUery解析JSON文件
我有这个JSON文件:使用Javascript/JQUery解析JSON文件,javascript,ajax,json,Javascript,Ajax,Json,我有这个JSON文件: { "guest": { "permissions": { "webportal": [ "access", "modify" ], {…} "test/dashboard": [ "access" ] }, "users": [ "guest" ], "time_o
{
"guest": {
"permissions": {
"webportal": [
"access",
"modify"
],
{…}
"test/dashboard": [
"access"
]
},
"users": [
"guest"
],
"time_out": "3600000"
},
"administrator": {
"permissions": {
"webportal": [
"monitoring",
"access",
"modify"
],
{…}
"test/settings": [
"access",
"modify"
]
},
"users": [
"admin"
],
"time_out": "3600000"
}
}
我需要做的就是简单地把第一个项目放到一个选择框中。例如:
GUEST、ADMINISTRATOR和用户部分下的任何内容都可以是“n”个条目,需要输入如下选择:
<select id='JSONFile'>
<option value='administrator'>administrator</option>
<option value='guest'>guest</option>
<option value='useradmin'>useradmin</option>
</select>
JSON文件中的数据余额需要放入一个数组中,以便我以后可以访问它并将其转储到复选框的值中
例如:在Guest:Permissions:WebPortal下,可以访问和修改。这是仅有的两个权限。因此,客户可以访问WebPortal;他们必须具有访问权限。要编辑,请修改。明白了吗
所以我对这些东西不熟悉,只需要让它尽可能简单
哦,是的,我有没有提到我们正在使用击倒,下拉列表必须是一个可观测阵列?但一次只能做一件事
第二部分稍后
再见 了解了knockout映射插件后,我的knockout生活变得轻松多了 这样,您就可以从JSON数据自动创建模型
viewModel = ko.mapping.fromJS(data);
进入viewModel后,您可以迭代到您的内容。您可能希望向json数据中添加根节点,以便更轻松地遍历角色。要获取并显示select元素中最高级别对象的键,请使用以下代码
var optionValues = [];
var data = JSON.parse(JSONdata); //this parses your data securely into an object that you can easily use
for(option in selection) { //goes through the highest level keys of the object
if (data.hasOwnProperty(option)) { //this ignores the default object properties (things you don't want)
if(option === 'users') //takes into account user titles
JSONdata['users'].forEach(function(userTitle) { //iterates over all of the user data and appends usertitles to the array
optionValues.push('user'+userTitle);
});
else { // for the default roles like admin
optionValues.push(option); //this puts all of the non-user keys into an array
}
}
}
这将为您在上面发布的数据输出=>['guest'、'administrator'、'useradmin']。
然后,您可以使用document.createElement和document.appendChild为所有这些创建选项,并将它们放在文档中的select元素下。如何获取此JSON?它是静态的还是通过AJAX调用检索的?这是动态的。。。因此,一个用户可以添加一定数量的用户,但管理员和来宾不能被删除。只能更改GUEST的属性以及用户定义的项。