使用Javascript/JQUery解析JSON文件
Parsing a JSON file using Javascript/JQUery
我有这个JSON文件:
{
"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和"users"部分下的任何东西,可能有"n"个条目,需要放入这样的选择中:
<select id='JSONFile'>
<option value='administrator'>administrator</option>
<option value='guest'>guest</option>
<option value='useradmin'>useradmin</option>
</select>
JSON文件中的数据余额需要放入一个数组中,这样我以后就可以访问它并将其转储为CheckBoxes
的值。
例如:在Guest:Permissions:WebPortal - there's ACCESS and MODIFY
下。这是仅有的两个权限。因此,客人可以访问门户网站;他们必须具有访问权限。若要编辑,请修改。明白了吗?
所以我对这个东西是新手,只需要让它尽可能简单。
哦,是的,我有没有提到我们正在使用KNOCKOUT
,并且下拉必须是KO可观测阵列?但一件事一件事。
第二部分稍后介绍。
Ciao!
要获取并显示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元素下。
在了解了敲除映射插件后,我的敲除生活变得轻松多了。
http://knockoutjs.com/documentation/plugins-mapping.html.
这样,您就可以从JSON数据中自动创建模型。
viewModel = ko.mapping.fromJS(data);
一旦进入viewModel,你就可以迭代到你内心的内容。您可能想在json数据中添加一个根节点,这样就可以更容易地迭代角色。
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 不显示带有本地json文件数据的谷歌地图脚本
- 可以't使用Appcelerator将JSON文件解析为JavaScript中的TableView
- 加载两个具有相同父密钥名称的json文件
- 使用JSON文件中的变量(字符串)填充文本区域
- 动态显示JSON文件内容
- 正在尝试将JSON文件放入JS数组
- 如何检查Json文件更新,如果更新了,则用更新的数据刷新我的页面
- 单击按钮更改加载到表中的JSON文件
- 处理一个JSON文件;完全相同的副本不是
- 在Javascript中加载JSON文件
- 使用Bootstrap将JSON文件加载到表中
- Angular 2:在本地.json文件上找不到文件
- JSON-从浏览器向外部服务器发送哪些http头JSON文件
- 如何获取d3.js中json文件中具有特定值的总行数
- 如何在dojo应用程序构建概要文件中加载json文件
- jQuery UI使用json文件自动完成
- 通过Azure存储以HTML形式获取JSON文件
- ngResource没有'从JSON文件解析HTML时不起作用