search

Home  >  Q&A  >  body text

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

PHPzPHPz2819 days ago724

reply all(5)I'll reply

  • 怪我咯

    怪我咯2017-04-10 15:10:45

    你要是这么写是对象。

    <script>
    var obj = <?php echo json_encode(an_arr); ?>;
    </script>
    

    要是带了引号,那就是字符串。

    <script>
    var obj = '<?php echo json_encode(an_arr); ?>';
    </script>
    

    具体如何,还请题主上代码吧~

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:10:45

    php 的 json_encode 输出就是字符串,你可以用javascript 的 JSON_parse 解析字符串为javascript对象

    reply
    0
  • PHPz

    PHPz2017-04-10 15:10:45

    后台输出的是流,这里就失去了所有的与类型相关的,其实浏览器拿到的也是一个流,然后js引擎转换成基本类型,js是弱类型的,再有json似乎不能用typeof判断出来吧,json只是一种格式,一种规范

    reply
    0
  • 阿神

    阿神2017-04-10 15:10:45

    头部声明json,试一下。
    header('Content-type: application/json');

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 15:10:45

    你看看 json_encode 的输出,就知道 typeof 为什么是 string 了。

    reply
    0
  • Cancelreply