我有如下数组。
$resultArr = array();
$resultArr['status code'] = 200;
$resultArr['result'] = "Success";
$json = json_encode($resultArr,JSON_PRETTY_PRINT);
return $json;
这给出如下结果
"{\n \"status code\": \"200\",\n \"result\": \"Success\",\n}"
没有Pretty_print,结果如下所示
"{\"status code\":\"200\",\"result\":\"Success\"}"
我希望这样的回应
{ “状态码”:200, “结果”:“成功” }
请问这样的事情可以完成吗,我使用的是PHP,上面提到了在邮递员中运行请求和响应
注意:我需要避免使用echo,因为我们在项目中使用了代码嗅探器,因此不建议使用echo。
答案 0 :(得分:7)
您使用api-knotain | connecting mongo ...: mongodb://api-mongo:27017/notify
api-knotain | Redis error: Error: Redis connection to api-redis:32770 failed - connect ECONNREFUSED 172.21.0.2:32770
api-knotain | mongo error:MongoNetworkError: failed to connect to server [api-mongo:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 172.21.0.3:27017]
api-knotain | Example app listening on port 7777!
来美化输出目的,
JSON_PRETTY_PRINT
如果要将其用作响应,请删除该参数,
$json = json_encode($resultArr,JSON_PRETTY_PRINT);
以上行应该起作用。
答案 1 :(得分:2)
首先,删除JSON_PRETTY_PRINT
标志。
第二,您的问题在于反斜杠(\
)。这些是转义字符。我不知道您如何打印json或如何查看它。
如果我这样做:
echo $json;
它输出:
{"status code":200,"result":"Success"}
可能由于您正在执行AJAX请求而添加了反斜杠。为了解决这个问题,您可以使用jQueries .parseJSON()
或将dataType: "json"
添加到您的ajax请求中。
如果您真的不希望添加反斜杠:
$json = json_encode($resultArr, JSON_UNESCAPED_SLASHES);
使用以下标头可能有助于输出:
header('Content-Type: application/json');
答案 2 :(得分:0)
1。可以使用API的API输出:
header('Content-Type: application/json');
2。使用JSON_PRETTY_PRINT
$json = json_encode($resultArr,JSON_PRETTY_PRINT);
3。您想在Chrome中显示
https://addons.mozilla.org/en-US/firefox/addon/json-handle/?src=recommended