请教,php怎么打印出从服务器返回的原始json? 我用一个php从服务器请求,服务器返回了标准格式的json,然后赋值到$a,我现在想把原始json数据打印出来,怎么办?echo只显示一个Array,print,prinf是空,print_r是显示出了,但已经不是json格式的数据了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 显然$a存储的不是json字符串,而是经过json_encode()后的PHP的数组。相应的,你可以echo json_decode($a); 确实有道理,试了一下,decode之后结果什么都不输出了包括print_r也输出不了东西了。 echo json_encode($a);即可,$a明显是decode过的字符串…… 既然说 "服务器返回了标准格式的json",那么怎么不贴出来呢?var_dump($a); //贴出结果 楼主的表达有误或者理解有误,如果传的是json,var_dump()的结果就肯定不会是Array了 用json_decode($json);转回来,再print_r();打印! sorry,我把 en和de弄反了。你应该 echo json_encode($a); 1.标准的json2.我现在想把原始json数据打印出来原始的json数据?难道不是 echo $a?还是你想看原来的数据结构?那就参照上面大家的意见还原成数组或者对象 输出 print_r(json_decode($a,TRUE)); 是这样的,我是在做新浪微博的api,用的这个http://open.weibo.com/wiki/2/statuses/home_timelinePHP<?phpsession_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 你使用了新浪的SDK,而SDK的作用即在开发便捷。虽然/statuses/home timeline的返回格式是json,但还是经过了SDK内部处理。PHP不能直接操作json字符串,因此这个SDK帮你预先把json转换为PHP的数组。 $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); 非常感谢你提供了一个另外的解决方法,但是我用的前端html+js的异步处理方式,所以非常好用但是用不上。学习了! 请问encode之后中文问题怎么解决? 那你 print_r($ms); 看到的是什么?是数组?你就 echo json_encode($ms); 就是了 encode之后成功了,但是中文乱码,我想知道有没有简单的方法解决乱码 在输出的html页面加上这行,<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 异步直接用ajax不就行了吗,对json支持很好 你用前端直接就getJSON,不用php那用php echo什么数据,这么做有点费二遍事了吧? 可是我用的是php 的sdk,我后端只能用php从新浪的服务器获得处理过的数据 zend studio中和myeclipse中 对html的代码格式化 头疼啊 跪求大虾帮忙 关于iframe的问题 PHP中怎么设置生成图片中的文字大小 存了一些有趣的签名头像图片,发上来大伙看看 php中使用mysql4升级到mysql5出现的中文乱码问题 如何理解一个index.php页面的格式? windows 2008中用iis+ php5.28无法加载mysql Linux 下执行php脚本 如何实现到"下一页“的翻页处理 有哪些网络公司有对PHP的支持比较好的虚拟服务器。 多维数组循环读取问题 PHP 面试题 Mysql 索引
相应的,你可以echo json_decode($a);
var_dump($a); //贴出结果
你应该 echo json_encode($a);
2.我现在想把原始json数据打印出来原始的json数据?
难道不是 echo $a?还是你想看原来的数据结构?那就参照上面大家的意见还原成数组或者对象 输出 print_r(json_decode($a,TRUE));
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
PHP不能直接操作json字符串,因此这个SDK帮你预先把json转换为PHP的数组。
$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);
你就 echo json_encode($ms); 就是了
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />