javascript - 如何将 PHP 嵌套数组转换为 JQuery 数组
问题描述
我正在尝试将嵌套的 PHP 数组转换为 JQuery 数组,但它引发了错误。
这是一个 PHP 数组,即输出为 print_r
Array(
[867] => Array ( [id] => 867 [title] => ATM [permalinks] => atm
[parent_id] => 1 [status] => 0 [sort] => 2 [icon_class] => [image] =>
[page_strip_id] => 0 [meta_title] => [meta_keyword] => [meta_description] =>
[show_on_home] => 0 [tot_listing] => 0 )
[344] => Array ( [id] => 344 [title] => Grocery [permalinks] => grocery
[parent_id] => 10 [status] => 0 [sort] => 0 [icon_class] => icofont icofont-
gift [image] => [page_strip_id] => 0 [meta_title] => [meta_keyword] =>
[meta_description] => [show_on_home] => 0 [tot_listing] => 0 ))
jQuery代码
<script type="text/javascript">
var child_cat_id=JSON.parse('<?php echo json_encode($child_cat_id);?>');
console.log(child_cat_id);
</script>
我如何转换它并像 PHP 数组一样使用它
解决方案
您的 JSON 可以有单引号,在 JSON 格式中不会转义,但会结束您在 JavaScript 中创建的字符串文字。此外,反斜杠不会有 JavaScript 字符串文字所需的额外转义。
更容易根本不解析 JSON 并假设 JSON 与 JavaScript 兼容,这是由 PHP 生成的(即,换行符没有问题,因为 PHP 默认会转义这些字符):
var child_cat_id=<?php echo json_encode($child_cat_id);?>;
还有一件事需要考虑:在编码过程中出现错误时json_encode
将返回。false
例如,当有非 UTF8 数据要编码时,您会得到该结果。echo
在这种情况下将不输出任何内容,这将使上述解决方案无效的 JavaScript(即=;
)。您可以通过多种方式在 JavaScript 中解决此问题,例如,如下所示:
var child_cat_id=["error", <?php echo json_encode($child_cat_id);?>].pop();
child_cat
每当 PHP 无法将数据编码为 JSON 时,就会出现“错误” 。
推荐阅读
- javascript - setState 被设置为数组 onClick 的最后一个元素,而与目标元素无关
- php - 有没有其他方法可以从数据库中获取数据?
- jquery - 页面加载时行边距消失
- javascript - 如何通过管理返回(404、200、...)在 JavaScript 中进行同步查询?
- python - pandas:如何返回字符串列的字符串长度计数?
- html - 为什么在背景图片上方看不到主页中的面板?
- visual-studio-code - 在 VSCode 中为调试命令添加前缀
- java - 线程“main”java.util.InputMismatchException 中的异常,我不知道为什么
- c# - MySqlException:第 1 行的“Id”列的数据太长
- javascript - 使用 Javascript (Axios) 的媒体查询