我用一个php从服务器请求,服务器返回了标准格式的json,然后赋值到$a,我现在想把原始json数据打印出来,怎么办?
echo只显示一个Array,print,prinf是空,print_r是显示出了,但已经不是json格式的数据了。

解决方案 »

  1.   

    显然$a存储的不是json字符串,而是经过json_encode()后的PHP的数组。
    相应的,你可以echo json_decode($a);
      

  2.   

    确实有道理,试了一下,decode之后结果什么都不输出了包括print_r也输出不了东西了。
      

  3.   

    echo json_encode($a);即可,$a明显是decode过的字符串……
      

  4.   

    既然说 "服务器返回了标准格式的json",那么怎么不贴出来呢?
    var_dump($a);  //贴出结果
      

  5.   

    楼主的表达有误或者理解有误,如果传的是json,var_dump()的结果就肯定不会是Array了
      

  6.   

    用json_decode($json);转回来,再print_r();打印!
      

  7.   

    sorry,我把 en和de弄反了。
    你应该 echo json_encode($a);
      

  8.   

    1.标准的json
    2.我现在想把原始json数据打印出来原始的json数据?
    难道不是 echo $a?还是你想看原来的数据结构?那就参照上面大家的意见还原成数组或者对象 输出 print_r(json_decode($a,TRUE));
      

  9.   

    是这样的,我是在做新浪微博的api,用的这个
    http://open.weibo.com/wiki/2/statuses/home_timeline
    PHP
    <?php
    session_start();include_once( 'config.php' );
    include_once( 'saetv2.ex.class.php' );$c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
    $ms  = $c->home_timeline(); // done
    $uid_get = $c->get_uid();
    $uid = $uid_get['uid'];
    $user_info = $c->show_user_by_id( $uid);//根据ID获取用户等基本信息?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body>
    <?php 
    print_r($ms);
    ?></body>
    </html>$ms理论上来说应该获得的是一个json字符串,因为在说明文档的下面是有说明的,返回的json
      

  10.   

    你使用了新浪的SDK,而SDK的作用即在开发便捷。虽然/statuses/home timeline的返回格式是json,但还是经过了SDK内部处理。
    PHP不能直接操作json字符串,因此这个SDK帮你预先把json转换为PHP的数组。
      

  11.   


    $ch = curl_init();  
    $ch = curl_init($url) ;  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; 
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; 
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
     $out = curl_exec($ch);
     
     $out = trim($out);
     curl_close($ch);
     $out = json_decode($out, true);
     var_dump($out);
      

  12.   

    非常感谢你提供了一个另外的解决方法,但是我用的前端html+js的异步处理方式,所以非常好用但是用不上。学习了!
      

  13.   

    请问encode之后中文问题怎么解决?
      

  14.   

    那你 print_r($ms); 看到的是什么?是数组?
    你就 echo json_encode($ms); 就是了
      

  15.   

    encode之后成功了,但是中文乱码,我想知道有没有简单的方法解决乱码
      

  16.   

    在输出的html页面加上这行,
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      

  17.   

    异步直接用ajax不就行了吗,对json支持很好
      

  18.   

    你用前端直接就getJSON,不用php那用php echo什么数据,这么做有点费二遍事了吧?
      

  19.   

    可是我用的是php 的sdk,我后端只能用php从新浪的服务器获得处理过的数据