为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

函数式编程 2022-06-17 11:00:03
我正在尝试读取嵌套的 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 jsonconsole.log(json.role.length) // undefined// for loop not worksfor(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){         //......       }   }}
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

上面的 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"

            }

        }

    ]

}


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号