<?php $JSON_text='{"a":"b","c":"用户一"}';
$J=json_decode($JSON_text);
print_r($J);?>这样写打印不出结果,是什么问题呢?该怎么改写呢?

解决方案 »

  1.   

    如果你的php环境配置正确,版本(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
    将输出:
    stdClass Object ( [a] => b [c] => 用户一 ) 
    默认以对象形式返回如果:
    $J=json_decode($JSON_text,true);
    方法增加true时,将以数组形式返回
    Array ( [a] => b [c] => 用户一 ) 
      

  2.   

    对于JS传入的串要经过JSON.stringify()序列化一下的
      

  3.   

    打印不出结果是正常的,因为你的程序文件不是 utf-8 编码的!
    php 提供的 json 函数只能处理 utf-8 编码的数据
      

  4.   

    http://cn.php.net/json_decode
      

  5.   

    json 规定文件编码一定要utf-8,否则json_decode将返回NULL。下面的代码已测试, 在线测试见:http://phpfiddle.org/main/code/8h8-yt2, 按F9返回结果,重发代码:header("Content-type: text/html; charset=utf-8");
    $JSON_text='{"a":"b","c":"用户一"}';
    $charset = mb_detect_encoding($JSON_text, "auto");
    if (strcasecmp($charset,'UTF-8') != 0) {
        $JSON_text = mb_convert_encoding($JSON_text,'UTF-8',$charset);
    }
    $J=json_decode($JSON_text);
    print_r($J);
      

  6.   

    第二个参数要加true不然是对象~~