Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 读取嵌套json显示每个键值[来自mySQL]_Javascript_Php_Json - Fatal编程技术网

Javascript 读取嵌套json显示每个键值[来自mySQL]

Javascript 读取嵌套json显示每个键值[来自mySQL],javascript,php,json,Javascript,Php,Json,我试图读取一个嵌套的JSON数据,其中键值是子嵌套的键和值,但它似乎不起作用。 来自数据库表[列:角色]的第一个json数据 $json = array(); $sql = $db->query("SELECT * FROM u_info WHERE bid=".$branch); while ($rs = $sql->fetch_assoc()) { $rs['img'] = getImg($rs['img']); $query = $db->quer

我试图读取一个嵌套的JSON数据,其中键值是子嵌套的键和值,但它似乎不起作用。 来自数据库表[列:角色]的第一个json数据

$json = array();
$sql = $db->query("SELECT * FROM u_info WHERE bid=".$branch);
while ($rs = $sql->fetch_assoc()) {    
    $rs['img'] = getImg($rs['img']);
    $query = $db->query('SELECT roles FROM wp_roles WHERE userid='.$rs['id'])->fetch_assoc();
    $rs['role'] = json_decode($query['roles']); // already a json format
    $json[] = $rs; 
}
exit(json_encode($json));// convert to json AJAX response works
然后json结果如下

{ 
    "academics":{ 
        "class":"true",
        "employee":"false",
        "students":"true",
        "subject":"false",
        "all":"true"
    },
    "exam":{ 
        "exams":"false",
        "schedule":"false",
        "result":"false",
        "marksheet":"false",
        "all":"false"
    },
    "timetable":{ 
        "class":"false",
        "teacher":"false",
        "all":"false"
    },
    "attendance":{ 
        "students":"true",
        "teacher":"true",
        "all":"true"
    }
}
未定义的json长度[JAVASCRIPT]

// parse nested json 
var json = JSON.parse(data)

console.log(json.role) // works and print above json
console.log(json.role.length) // undefined

// for loop not works
for(i = 0; i < json.role.length; i++){

   for(y = 0; y < json.role[i].length; y++){
      // json.role.academics.class === true [if condition]
       if(json.role[i][y] === true){
         //......
       }
   }
}
//解析嵌套的json
var json=json.parse(数据)
console.log(json.role)//在json上工作并打印
console.log(json.role.length)//未定义
//for循环不起作用
for(i=0;i
上面的JSON是一个对象,这就是它的长度未定义的原因

您尝试读取数据的方式(JSON响应应该有一个通过“roles”属性引用的对象数组)应该可以使用下面的格式。请检查回复

{
    "roles": [{
            "academics": {
                "class": "true",
                "employee": "false",
                "students": "true",
                "subject": "false",
                "all": "true"
            }
        },
        {
            "exam": {
                "exams": "false",
                "schedule": "false",
                "result": "false",
                "marksheet": "false",
                "all": "false"
            }
        },
        {
            "timetable": {
                "class": "false",
                "teacher": "false",
                "all": "false"
            }
        },
        {
            "attendance": {
                "students": "true",
                "teacher": "true",
                "all": "true"
            }
        }
    ]
}