laravel使用Dingo\Api写接口跟android对接时,android一直反应解析错误,无法解析数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | { "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 解码内容,然后创建新实例,把 {} 变成了 []。
这里我们手动处理返回的数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2017-08-22 mysql 定时任务的使用