您好我正在寻找一种在我的php api中回显json的正确方法,目前这是我的回音代码
我从另一个班级
获得这个echo '{"accountStatus":{';
echo '"create_status_code": "400",';
echo '"message": "Unable to create user."';
echo '}}';
我从另一个班级
获得这个echo '{';
echo '"status_code": "em200",';
echo '"message": "email duplicate"';
echo '}';
最后这是我得到的无效JSON
{
"status_code":"em200",
"message":"email duplicate"
}{
"accountStatus":{
"create_status_code":"400",
"message":"Unable to create user."
}
}
那么请问我如何正确回应?
答案 0 :(得分:1)
如果您可以将数据创建为数组,则可以使用json_encode获取有效的JSON输出:
echo json_encode(array(
"accountStatus" => array(
"create_status_code" => "400",
"message" => "Unable to create user",
),
"status_code" => "em200",
"message" => "email duplicate",
));
答案 1 :(得分:0)
这是一个非常糟糕的主意。只需使用jsonSerialize
;
echo json_encode(new StringValue('Hello!'), JSON_PRETTY_PRINT);
参考link
答案 2 :(得分:0)
为了使其正常工作,您需要正确的JSON输入或至少将其转换为它。如果您可以更改类输出JSON的方式,请将其输出为:
echo '{"accountStatus":{';
echo '"create_status_code": "400",';
echo '"message": "Unable to create user."';
echo '}}';
应该是JSON对象:
/* ClassOneOutput */
return json_decode('{
"accountStatus": {
"create_status_code": "400",
"message": "Unable to create user."
}
}', true);
echo '{';
echo '"status_code": "em200",';
echo '"message": "email duplicate"';
echo '}';
应该是JSON对象:
/* ClassTwoOutput */
return json_decode('{
"status_code": "em200",
"message": "email duplicate"
}', true);
/* Main script fetches class output */
$classTwoOutput = classTwo();
$classOneOutput = classOne();
$classOutput = array($classOneOutput, $classTwoOutput);
echo json_encode($classOutput, JSON_PRETTY_PRINT);
答案 3 :(得分:0)
如果您希望浏览器将其正确显示为json,请不要忘记设置标头:
def readAllData(file_name):
with open(file_name) as file:
for line in file:
filelist = [line.replace('\n','') for line in file]
# filelist = line.splitlines()
t = [tuple(map(str, i.split('\t'))) for i in filelist]
print(t)
return t