在 Yii2 中获取 JSON 格式的响应

Get response in JSON format in Yii2(在 Yii2 中获取 JSON 格式的响应)
本文介绍了在 Yii2 中获取 JSON 格式的响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将响应数组转换为 JSON 格式.我已经尝试了在 SO 和其他网站上发布的所有答案,例如 web1,web2 添加 header('内容类型:application/json') 然后 echo json_encode($data,JSON_PRETTY_PRINT);但我总是以文本格式获得输出.有人能帮我解决这个问题吗.

I'm trying to convert and array of response into JSON format. I have tried all the answers that were posted on SO and other websites like web1,web2 adding header('Content-Type: application/json') and then echo json_encode($data,JSON_PRETTY_PRINT); But I'm always getting the output in text format. Can some one help me in solving this.

助手类:

public static function renderJSON($data) {
    header('Content-Type: application/json');
    echo json_encode($data,JSON_PRETTY_PRINT);
}

我的控制器:

if ($model->login()) {
    $user =  User::findByUsernameOrEmail($request->post('username'));
    $userArray = ArrayHelper::toArray($user);
    Helpers::renderJSON($userArray);

我尝试打印 userArray,它看起来像这样:

I tried to printing the userArray and it looks like this:

Array
(
    [name] => abc
    [lastname] => xyz
    [username] => test_test
)

Json 输出:(html/text)

Json output: (html/text)

{
    "name": "abc",
    "lastname": "xyz",
    "username": "test_test"
}

推荐答案

设置

Yii::$app->response->format = yiiwebResponse::FORMAT_JSON;

return之前的某个控制器的动作中.

in the controller's action somewhere before return.

这篇关于在 Yii2 中获取 JSON 格式的响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Convert JSON integers and floats to strings(将JSON整数和浮点数转换为字符串)
in php how do I use preg replace to turn a url into a tinyurl(在php中,如何使用preg替换将URL转换为TinyURL)
all day appointment for ics calendar file wont work(ICS日历文件的全天约会不起作用)
trim function is giving unexpected values php(Trim函数提供了意外的值php)
Basic PDO connection to MySQL(到MySQL的基本PDO连接)
PHP number_format returns 1.00(Php number_Format返回1.00)