Rumah >pembangunan bahagian belakang >tutorial php >javascript - json_encode输出
php后台的一个数组
在json_encode后输出到前台,此时前台js用typeof判断应该是json对象类型是吧
那为什么会显示是string类型
==============更新下=====================
早上已经弄明白了,看了大家的回答~很多个点都是对的
1、 json_encode输出的就是字符串,
无论你是exit(xxx)还是echo xxx方式输出到前台的。
都需要用JSON.parse解析字符串变为对象
2、 输出前头部声明一下 ,header('Content-type: application/json'); 直接输出的就是object
php后台的一个数组
在json_encode后输出到前台,此时前台js用typeof判断应该是json对象类型是吧
那为什么会显示是string类型
==============更新下=====================
早上已经弄明白了,看了大家的回答~很多个点都是对的
1、 json_encode输出的就是字符串,
无论你是exit(xxx)还是echo xxx方式输出到前台的。
都需要用JSON.parse解析字符串变为对象
2、 输出前头部声明一下 ,header('Content-type: application/json'); 直接输出的就是object
你要是这么写是对象。
<code><script> var obj = <?php echo json_encode(an_arr); ?>; </script> </code>
要是带了引号,那就是字符串。
<code><script> var obj = '<?php echo json_encode(an_arr); ?>'; </script> </code>
具体如何,还请题主上代码吧~
php 的 json_encode 输出就是字符串,你可以用javascript 的 JSON_parse 解析字符串为javascript对象
后台输出的是流,这里就失去了所有的与类型相关的,其实浏览器拿到的也是一个流,然后js引擎转换成基本类型,js是弱类型的,再有json似乎不能用typeof判断出来吧,json只是一种格式,一种规范
头部声明json,试一下。
header('Content-type: application/json');
你看看 json_encode 的输出,就知道 typeof 为什么是 string 了。