• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 为何后端经常会将一个空数组返回为null?

为何后端经常会将一个空数组返回为null?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了后端没返回到json,后端没有返回到json,前端和后端的区别,后端开发,后端等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:为何后端经常会将一个空数组返回为 null ?
描述:

后端写的 api ,返回如下的 json 数据

{"status":0,"data":{"applies":null,"total":"0"},"message":""}

其中 applies 字段返回的类型应该是数组。

但是记录数为0的情况下,为何会返回 null 而不是 []

后者不是更符合规范吗?

还是说后端有不得已的苦衷?


解决方案1:

哎,我也经常遇到这样的后端,这时候只能去沟通下,看看他们能不能做下处理,任何时候都不要出现null,这时候是空数组,某一些值的时候可以是空字符串,哪怕没有哪个key我都能接受,最害怕null,,,

解决方案2:

applies是从数据库联查出来的吧?你判断一下就可以了

解决方案3:

applies = return array
如果数组为空的话,那么applies就是null
规则是人定的,也可以这么约定
if(empty(array))
return "empty"

解决方案4:

因为不知道后端遭受了什么样的对待,让我们加上一些log,仔细倾听它的苦衷~

解决方案5:

自己保证自己代码的健壮性好吧?
每个人都认为前面的人传来的一定是[],那任何一个环节出一点问题,返回null,整体都会挂。
每个人拿数据自己||一个[],那任何一个环节出问题,都不会挂。

解决方案6:

更符合规范……但并不一定是被遵守的。如果你不能控制后端,那你就将取到的数据简单的处理下吧:

javascriptvar result = {"status":0,"data":{"applies":null,"total":"0"},"message":""}
result.data.applies = result.data.applies || []

解决方案7:

这个应该是后端代码不够严谨吧。比如后端可以加一个判断,如果 applies 是一个array,但是没有值,也需要用array,不能使用NULL 等。
测试代码:

$c;

$arr = array(
    'status' => 1, 
    'data' => array(
        'a' => 111,
        'b' => array(),
        'c' => $c,
        'd' => (empty($c) ? array() : $c)
    )
);

echo json_encode($arr);

输出为:

{
status: 1,
data: {
a: 111,
b: [ ],
c: null,
d: [ ]
}
}


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 为何后端经常会将一个空数组返回为null?

相关文章

  • 2017-06-07 python爬虫python特定段落的文本匹配
  • 2017-06-07 关于python中id这个方法的一些问题
  • 2017-06-07 golang处理十进制浮点数
  • 2017-06-07 (python)Scrapy正则表达式怎么去掉空格和换行符?
  • 2017-06-07 rediscluster挂掉了,再也无法重启,请问怎么办,原来的数据呢?
  • 2017-06-07 什么样的unittest是一个好的unittest
  • 2017-06-07 使用python的pandas模块时,查找和修改dataFrame中的值速度非常慢,请问是什么原因,有什么好办法解决吗?
  • 2017-06-07 应用用的mongo数据库如何部署在sae上呢?
  • 2017-06-07 用python模拟登陆报400错,是什么原因
  • 2017-06-07 JavaScript小算法!

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 七牛的百倍赔偿,笑死人了
    • 用Qiniu_PutFile能直接保存二进制文件么?
    • 关于如何搜索python文档的问题
    • (python)pymongo如何在更新数据时添加新字段
    • 《python数据挖掘入门与实践》第五章的错误
    • 流量统计方式
    • githubegit
    • pycharm(python)pycharm注册码问题?
    • 七牛js-sdk上传报错“POSThttp://up-z2qiniucom/403Forbidden”
    • scrapy如何爬取网页里面的thunder链接?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有