Php json_encode()返回一个空值
我有一个用户对象,希望将其编码为JSON格式,但Php json_encode()返回一个空值,php,json,Php,Json,我有一个用户对象,希望将其编码为JSON格式,但JSON_encode()返回一个空值“{}”。我做错了什么 这是我的密码: <?php header('Content-Type: application/json'); require_once 'DataBase.php'; include_once '../Model/User.php'; $user = DataBase::getUser('username', $_GET['q']); //getting User object
JSON_encode()
返回一个空值“{}”
。我做错了什么
这是我的密码:
<?php
header('Content-Type: application/json');
require_once 'DataBase.php';
include_once '../Model/User.php';
$user = DataBase::getUser('username', $_GET['q']); //getting User object
$json = json_encode($user); //returns "{}"
echo $json;
我认为是因为$user=DataBase::getUser('username',$\u GET['q'])代码>返回一个对象,而不是数组
我找到了解决办法。用户对象的属性是私有的。我只需要在用户类中创建to_json()方法。执行var_dump($json)我的意思是var\u dump($user)
数据库::getUser
没有返回有效的用户object@Adelphia,var_dump返回带有属性的显示用户对象,这是我从数据库获取的。请显示var_dump使用json_encode
对对象进行编码没有问题。尝试php-r“$a=new stdclass();$a->b=1;echo json_encode($a);”
它将按预期输出{“b”:1}
。是的,它返回一个用户对象。你应该在能够接受时接受自己的答案,并将另一个答案取消标记为已接受-因为另一个答案根本解决不了你的问题。我能够解决我的问题,只是因为罗曼·索科洛夫斯基提供了与类似问题的链接。我应该在两个答案上都打标记吗?