当前位置:  开发笔记 > 编程语言 > 正文

在Yii2中以JSON格式获取响应

如何解决《在Yii2中以JSON格式获取响应》经验,为你挑选了2个好方法。

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

助手班级:

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它看起来像这样:

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

Json输出:(html/text)

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

Bizley.. 38

\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

在控制器的行动之前的某个地方return.



1> Bizley..:

\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

在控制器的行动之前的某个地方return.



2> Andreas Hind..:

从Yii 2.0.11开始,有一种专用asJson()方法以JSON格式返回响应.跑:

return $this->asJson($array);

在你的控制器动作中.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有