Javascript 读取嵌套json显示每个键值[来自mySQL]
我试图读取一个嵌套的JSON数据,其中键值是子嵌套的键和值,但它似乎不起作用。 来自数据库表[列:角色]的第一个json数据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 = 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"
}
}
]
}