Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript/JQUery解析JSON文件_Javascript_Ajax_Json - Fatal编程技术网

使用Javascript/JQUery解析JSON文件

使用Javascript/JQUery解析JSON文件,javascript,ajax,json,Javascript,Ajax,Json,我有这个JSON文件: { "guest": { "permissions": { "webportal": [ "access", "modify" ], {…} "test/dashboard": [ "access" ] }, "users": [ "guest" ], "time_o

我有这个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和用户部分下的任何内容都可以是“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的属性以及用户定义的项。