zoukankan      html  css  js  c++  java
  • laravel使用DingoApi通过response()->json()返回空对象

    laravel使用DingoApi写接口跟android对接时,android一直反应解析错误,无法解析数据。

    {
        "status_code":200,
        "message":"请求成功",
        "data":[
            {
                "type":2,
                "message_id":1383,
                "title":"视频点赞",
                "content":"赞了你的视频",
                "created":1565922723,
                "user_id":56,
                "user_nickname":"阿葛",
                "message_url":"",
                "video_info":[
                ]
            },
            {
                "type":2,
                "message_id":1338,
                "title":"评论点赞",
                "content":"赞了你的评论",
                "created":1565784398,
                "user_id":41,
                "user_nickname":"阿城",
                "message_url":"",
                "video_info":{
                    "id":3214,
                    "title":"好一个如来神掌满分?!",
                    "cover":[],
                    "dynamic_cover":[],
                    "play_url":"",
                    "play_times":15034,
                    "play_count":676,
                }
            }
        ]
    }
    

    由于 video_info 没有找到,直接返回的 new stdClass(),希望能返回 空对象, 但是,到 response()->json() 时 ,直接变成了空数组。

    因为使用 DingoApi 时,会有不同的响应处理,有时候,会通过 DingoApiHttpResponse::makeFromJson 解码内容,然后创建新实例,把 {} 变成了 []。

    这里我们手动处理返回的数据。

    function returnJson($data = [], $code = '', $message = '')
    {
        $result = [
            'status_code' => $code,
            'message' => $message,
            'data' => $data,
        ];
    
        //手动编码,避免dingo/api把空对象转成空数组
        $result = json_encode($result, JSON_UNESCAPED_UNICODE);
    
        return response()->json($result);
    }
    

      

  • 相关阅读:
    注释
    选择器
    SQL语句中查找字符的位置
    SQL语句中截取字符串Substr
    IDENTITY(函数)
    SQL Server设置主键自增长列
    SQL语句操作ALTER
    表的主键
    南京夜市
    夜班
  • 原文地址:https://www.cnblogs.com/jkko123/p/11395730.html
Copyright © 2011-2022 走看看