对象怎么转成json

cRazy谢不清 2012-11-12 03:50:40
现在有一个对象
user Object ( [User_id:private] => 1 [Account:private] => abc [Password:private] => abc [User_name:private] => zhangsan [Creat_time:private] => 2012-11-12 14:56:32 )
我要打包成json格式 (实际情况是要传到另个php端[webservice])
希望实现的具体流程:
php端1 -> 对象 -> json字符串 -> php端2 ->json字符串 -> 变回对象或者数组 (最好是数组)
用 json_decode 出来的总是 stdClass Object ( ) 不知道什么意思 求交流指点!
...全文
262 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cRazy谢不清 2012-11-12
  • 打赏
  • 举报
回复
找了解决方案了。 PHP能够将一个对象强转成数组 $user = json_encode((array)$user); 这样就可以打包成json了 对象 : user Object ( [User_id:private] => 1 [Account:private] => zzz ) 转成数组后json_encode() : {"\u0000user\u0000User_id":1,"\u0000user\u0000Account":"zzz"} 接收到json用json_decode()转回数组 : Array ( [userUser_id] => 1 [userAccount] => zzz ) 再次感谢xuzuning版主的帮助,谢谢!
cRazy谢不清 2012-11-12
  • 打赏
  • 举报
回复
先谢谢您的关注! 现在如果将一个简单的对象直接json_encode() 输出的是一个空的对象 {} 还是达不到要求! 思路清晰了很多 继续研究!
xuzuning 2012-11-12
  • 打赏
  • 举报
回复
因为你想还原成 user 对象,所以才让你用序列化函数 既然你不需要还原成php对象,那就用json好了 $p = new user; $s = json_encode($p); $o = json_decode($s); //还原成对象 $a = json_decode($s, true); //还原成数组
cRazy谢不清 2012-11-12
  • 打赏
  • 举报
回复
感谢版主的回复!对象序列化之后是这样的 O:4:"user":2:{s:13:"userUser_id";s:1:"1";s:13:"userAccount";s:3:"zzz";} 还不是json格式。莫非要截取字符串? 最好不要啦 - - 以后数据量大了 不知道有没隐患 直接序列化就传的话 也是字符串。但是做webservice要考虑到跨平台 比如传到java .net甚至其他的 所以最好还是能够传个json吧 简单点说,我的需求就是希望能把一个对象转成json 就最好了 user Object ( [User_id:private] => 1 [Account:private] => zzz ) 成一个json格式
xuzuning 2012-11-12
  • 打赏
  • 举报
回复
json 是与js交互用的数据格式,不会携带php才有的信息。所以不可能原样还原 你应该使用php的序列化函数
class T {
  public $var = 123;
}
$p = new T;
$s = serialize($p);
$x = unserialize($s);
print_r($x);
T Object ( [var] => 123 )
elingtonwong 2012-11-12
  • 打赏
  • 举报
回复
json_decode 出来的是OBJECT对象,没错。 如果你要decode成USER对象,可能就需要用到反射啦。。。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧