laravel使用Dingo\Api写接口跟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() 时 ,直接变成了空数组。

因为使用 Dingo\Api 时,会有不同的响应处理,有时候,会通过 \Dingo\Api\Http\Response::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);
}

  

laravel使用Dingo\Api通过response()->json()返回空对象的更多相关文章

  1. laravel Passport - Dingo/Api v2.0+Passport 实现 api 认证

    第一部分: 安装passport 使⽤ Composer 依赖包管理器安装 Passport : composer require laravel/passport 接下来,将 Passport 的服 ...

  2. 解决 axios 返回空对象的问题

    问题描述:

  3. 【java】JSON.toJSONString 空对象也可以转化为JSON字符串

    <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifac ...

  4. 第四节:dingo/API 最新版 V2.0 之 Responses (连载)

    因为某些某些原因,不能按时更新,唉.我会尽力,加快速度.(这句话不是翻译的哈) 原文地址--> https://github.com/dingo/api/wiki/Responses A fun ...

  5. Dingo Api 1.0在laravel5.2中的简单应用

    Dingo Api是为基于laravel的开发提供了一系列工具集,这些工具集可以帮助开发者快速构建API.Dingo Api最新的版本是2.0.0-alpha1,这个版本需要php7.0以上的php版 ...

  6. 关于Laravel中使用response()方法调用json()返回数据unicode编码转换的问题解决

    在网上找了好久没有找到,之后一步一步测试,发现了Laravel还是很强大的,解决方案如下: public function response(){ // 返回json数据 $data = [ 'err ...

  7. laravel Passport - 创建 REST API 用户认证以及Dingo/Api v2.0+Passport实现api认证

    第一部分: 安装passport 使⽤ Composer 依赖包管理器安装 Passport : composer require laravel/passport 接下来,将 Passport 的服 ...

  8. laravel dingo/api添加jwt-auth认证

    前面我们学了laravel dingo/api创建简单的api,这样api是开放给所有人的,如何查看和限制api的调用呢?可以用jwt-auth来验证,JSON Web Token Authentic ...

  9. Laravel 5 中使用 JWT(Json Web Token) 实现基于API的用户认证

    在JavaScript前端技术大行其道的今天,我们通常只需在后台构建API提供给前端调用,并且后端仅仅设计为给前端移动App调用.用户认证是Web应用的重要组成部分,基于API的用户认证有两个最佳解决 ...

随机推荐

  1. 池化技术(二)HikariCP是如何管理数据库连接的?

    基于依赖程序的版本信息:HikariCP:3.3.1               驱动程序mysql-connector-java:8.0.17 上一篇:Druid是如何管理数据库连接的 零.类图和流 ...

  2. ism 发布

    ism 发布 ism 发布 ism 发布

  3. Java IO系列之 ByteArrayInputStream

    http://www.cnblogs.com/skywang12345/p/io_02.html

  4. sshd服务安装-ssh命令使用方法

    SSHD服务概述 介绍:SSH协议:安全外壳协议.为 Secure Shell的缩写.SSH 为建立在应用层和传输层基础上的安全协议. 作用:SSHD服务使用SSH协议可以用来进行远程控制,或在计算机 ...

  5. IT兄弟连 HTML5教程 CSS3揭秘 CSS选择器1

    要使用CSS对HTML页面中的元素实现一对一.一对多或者多对一的控制,就需要用到CSS选择器.选择器是CSS3中一个重要的内容,使用它可以大幅度地提高开发人员书写或修改样式表的效率.在大型网站中,样式 ...

  6. Docker for Java Developers

    1.  基本概念 1.1.  主要组件 Docker有三个主要组件: 镜像是Docker的构建组件,而且是定义应用程序操作系统的只读模板 容器是Docker的运行组件,它是从镜像创建的.容器可以运行. ...

  7. InnoSetup跨脚本传参数

    需求:在a.iss脚本传递参数给b.iss 举例: a.iss:传程序安装路径给b.iss Parameters: /Path={app} b.iss:接收a.iss传过来的安装路径 DefaultD ...

  8. 执行超大的.sql文件处理,100M++

    sqlcmd的命令参数如下: 1    [-U 登录 ID]             [-P 密码] 2  [-S 服务器]                [-H 主机名]           [-E ...

  9. Windows应急日志常用的几个事件ID

    Windows应急日志常用的几个事件ID点击站内没有搜索到,可能搜索姿势不对,发一下吧,应急时可能会用到,根据日志时间点判断入侵 日志路径:C:\Windows\System32\winevt\Log ...

  10. LiveData使用

    ### Andorid LiveData 使用 [[_TOC_]] #### Lifycycle 使用1.继承FragmentActivity 实现LifecycleOwner接口2.声明一个Life ...