Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php json_encode()返回一个空值_Php_Json - Fatal编程技术网

Php json_encode()返回一个空值

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格式,但
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}
。是的,它返回一个用户对象。你应该在能够接受时接受自己的答案,并将另一个答案取消标记为已接受-因为另一个答案根本解决不了你的问题。我能够解决我的问题,只是因为罗曼·索科洛夫斯基提供了与类似问题的链接。我应该在两个答案上都打标记吗?