【发布时间】:2021-04-16 20:57:18
【问题描述】:
我正在尝试将我的多维数组从 php 传递到 javascript,
$settingsArray = array('genSettings' => array(), 'settings' => array());
$settingsArray['genSettings'] = array(
"userName" => array("error" => false, "msg"=> ""),
"email" => array("error" => false, "msg"=> ""),
"firstName" => array("error" => false, "msg"=> ""),
"lastName" => array("error" => false, "msg"=> ""),
"style" => array("error" => false, "msg"=> ""),
"pwd" => array("error" => false, "msg"=> "")
);
<script type="text/javascript">
var settings = JSON.parse(JSON.stringify(<?php echo json_encode($settingsArray) ?>));
alert(settings);
alert(settings.genSettings);
alert(settings['genSettings']);
</script>
输出是所有警报返回 [object Object]
我尝试了以下方法:
var settings = JSON.parse(<?php echo json_encode($settingsArray) ?>);返回 SyntaxError: Unexpected token o in JSON at position 1 -> [对象对象]
var settings = <?php echo json_encode($settingsArray) ?>;全部 返回 [object 对象]
使用 JSON.stringify
var settings= JSON.stringify(<?php echo json_encode($settingsArray) ?>);
alert(settings);
alert(settings.genSettings);
alert(settings['genSettings']);
第一个警报返回:
{"genSettings":{"userName":{"error":false,"msg":""},"email":{"error":false,"msg":""},"firstName":{"error":false,"msg":""},"lastName":{"error":false,"msg":""},"style":{"error":false,"msg":""},"pwd":{"error":false,"msg":""}},"settings":[]}
虽然其余的返回未定义,但我仍然无法在 JavaScript 中获取单个值
settingsArray.genSettings.userName 或 settingsArray['genSettings']['userName'] 等等。正如我第一次尝试看到的那样,我 JSON.parse JSON.stringify(<?php echo json_encode($settingsArray)?>) 并返回 [object Object]。
有谁知道我在 javascript 中做错了什么。提前谢谢!
【问题讨论】:
标签: javascript php arrays json multidimensional-array