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. September 15th, 2019. Sunday, Week 38th.

    Break down these walls and come on in. 一路披荆斩棘,勇往直前. We are the only wall that stands in our way to s ...

  2. Appium(三):安装appium client、adb命令

    1. 安装appium client appium client是对webdriver原生api的一些扩展和封装.它可以帮助我们更容易的写出用例,写出更好的用例. appium client是配合原生 ...

  3. java之递归

    什么是递归 递归:指在当前方法内调用自己的这种现象. 递归的分类: 递归分为两种,直接递归和间接递归. 直接递归称为方法自身调用自己. 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法 ...

  4. 批量修改含空格的文件名「Linux」

    1.问题:文件批量重命名和处理文件名中的空格 如果文件名中有空格,在执行以下shell脚本的时候会出错. shell 脚本 for filename in `ls` do echo $filename ...

  5. 小程序 if else

    与js略有差异 (1).js中的数据 (2) .wxml  中的数据判断 (3)结果显示

  6. NLP入门(九)词义消岐(WSD)的简介与实现

    词义消岐简介   词义消岐,英文名称为Word Sense Disambiguation,英语缩写为WSD,是自然语言处理(NLP)中一个非常有趣的基本任务.   那么,什么是词义消岐呢?通常,在我们 ...

  7. 好用的js片段收藏

    1.判断浏览器信息,如果是手机,就跳到手机页面 if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) { wind ...

  8. [IDA] 自动下载符号

    当现实无法自动下载符号时,看下面交互窗口,提示安装 VC++ 2008. 安装成功之后就会自动下载符号.

  9. Javascript 的定时器 setInterval,setTimeout,clearInterval

    今天开通博客.来1个.哇哈哈哈~~ 今天本来想复习BOM的看到定时器也算DOM一种 ?(是这样吗).分享一下 参考源于:八神吻你 http://www.cnblogs.com/lmfeng/archi ...

  10. iOS中计算字符串NSString的高度

    根据固定宽度计算字符串高度: NSString *info = @"但是公司的高度是广东省公司的广东省高速度来开个大帅哥多撒谎个爱好就跟他说噶三公司噶是的刚好是我哥如果黑暗如果坏都干撒降低公 ...