描述了对 JSON 数据中使用的 null 和空数组及对象的处理。

JSON 数据具有 null 和空数组及对象的概念。此部分说明其中每个概念如何映射到 null 和未设置的数据对象概念。

Null 值

JSON 具有特殊值 null,可以对任何数据类型设置该值,包括数组、对象、数字和布尔类型。

34    {                       Schema types
35      "id":null,                (integer)
36      "firstName": null,            (string)
37      "address": null,          (Address complex type with maxOccurs = 1)
38      "homeAddresses":null      (Address complex type with maxOccurs > 1)
39      "phoneNumbers": null      (string with maxOccurs > 1)
40  }

考虑上一个示例,其中具有 null 值的 JSON 数据被解析为数据对象,以下情况成立:

  • id - 如果在该模式中将该属性定义为可空,那么它将设置为 null。如果该属性未定义为可空,那么它将抛出异常。
  • firstName - 在该属性上设置 null 值。
  • address - 如果在该模式中将该属性定义为可空,那么它将设置为 null。如果该属性未定义为可空,那么它将抛出异常。
  • homeAddresses - 模式不允许该属性可空,因此未设置该属性。
  • phoneNumbers - 必须在该模式中将该属性定义为可空,否则它将抛出异常。

当序列化为 JSON 时,如果数据对象中的属性值为 null,那么它将序列化为 JSON null。

未设置属性

JSON 数据中不存在的属性映射到数据对象空间中的未设置属性。 如果数据对象中的属性未进行设置(未设置),那么该属性将不会出现在 JSON 数据中。

空属性

JSON 空概念适用于数组和对象,如下所示。

41  {
42      "address":{}
43       "homeAddresses":[]
44        "phoneNumbers":[]
45  }

如果是地址,那么会创建空地址数据对象。数据对象不具有空列表的概念。因此,针对这两个属性,不会对数据对象采取任何操作。

转载于:https://www.cnblogs.com/duanxz/p/3447864.html

处理 JSON null 和空数组及对象相关推荐

  1. PHP json_encode转换空数组为对象

    问题描述: php在给端提供接口,比如PC和安卓,ios等,如果返回json格式的数据,当返回数据的为数组,且key为字符串时,json化后将返回jsonObject,但是如果是空数组,有可能返回的就 ...

  2. 数组为空数组,判断数组长度不等于0

    项目中遇到如果后台返回数据为null或者空数据 例如返回这样的数据: 为了美观,我想将相对应没有数据的图片隐藏掉 我的判断是不等于null或者数组长度不等于0 console.log(this.for ...

  3. java返回空集合对象_返回null或空集合更好吗?

    这是一个普遍的问题(但是我正在使用C#),最好的方法是什么(最佳实践),对于以集合为返回类型的方法,您是否返回null或空集合? #1楼 我想在这里举例说明. 在这里考虑一个案例. int total ...

  4. php的对象和数组应该学js,JavaScript数组与对象的常用方法及 json 的序列化

    一.JavaScript数据类型: 1- 原始类型:number(数值),string(字符串),boolean(布尔值)var age = 18; var username = "admi ...

  5. JavaScript 判断空对象空数组

    JavaScript 判断空对象空数组 一.为什么判断空数组空对象会比较麻烦 二.判断空数组的方法 三.判定空对象的方法 四.一个判断参数为空的函数封装 来源: https://www.jianshu ...

  6. js 判断是否为空对象、空数组

    当需要判断参数是否为空时,总希望 js 能够提供原生的判断方法,可惜并没有,只能自己封装了. 1 function isEmpty(obj) { 1 // 检验 undefined 和 null 1 ...

  7. c#json对象转数组_数组和对象的区别

    数组和对象两者都可以用来表示数据的集合,曾一度搞不清楚"数组"(array)和"对象"(object)的根本区别在哪里. 有一个数组a=[1,2,3,4],还有 ...

  8. javascript 数组和对象的浅复制和深度复制 assign/slice/concat/JSON.parse(JSON.stringify())...

    javascript 数组和对象的浅度复制和深度复制 在平常我们用 '='来用一个变量引用一个数组或对象,这里是'引用'而不是复制下面我们看一个例子引用和复制是什么概念 var arr=[1,2,3, ...

  9. jQuery的ajax的post请求json格式无法上传空数组

    问题描述:在和后端对接时,使用jquery的ajax的post方式向后端传递一序列约定好格式的对象数组.遇到了一个现象:如果对象中的数组是空数组,那么在请求参数中是不会出现的. 以下是数据的对比:   ...

最新文章

  1. LINUX 基础命令 一
  2. 正压防爆气体分析系统
  3. 神经网络优化中的Weight Averaging
  4. kafka删除队列_没想到 Kafka 还会这样问,学会这些带你轻松搞定大厂面试!
  5. mysql多表关联更新
  6. python能做大型游戏吗_python有做大型游戏的潜力吗?
  7. css_oneday
  8. Python __getattr__和__setattr__方法介绍
  9. c++_导入/导出excel文件
  10. 关于Acess 图片存为ole类型,数据集合显示
  11. 遗传算法的基本概念和实现(附 Java 实现案例)
  12. 【物流选址】基于matlab佛洛依德算法求解物流选址问题【含Matlab源码 892期】
  13. 2021年10种最佳数据库管理软件
  14. 利用easyCHM制作JavaAPI帮助文档
  15. html表头固定原理,html Table 表头固定的实现
  16. proteus——rs-232双机通讯
  17. Linux嵌入式开发必读推荐书籍
  18. 串口通信与TTL和RS-232
  19. 13树莓派手动安装Home Assistant
  20. 三相逆变器双pi控制器参数如何调节_电工学习笔记 - 比例谐振控制器- PR controller...

热门文章

  1. nginx介绍及常用功能
  2. linux高效办公环境配置(vim、tmux、bash_profile)
  3. 软件工程——视频总结
  4. mysql/mariadb centos7 修改root用户密码及配置参数
  5. redis 双写一致性
  6. SpringBoot-web开发(四): SpringMVC的拓展、接管(源码分析)
  7. Linux 内核,30 年C 语言将升级至 C11
  8. H.264 Video Codec速度和质量
  9. ajax交互扩展遇到的问题,ajax autocomplete扩展程序无法正常工作
  10. ERROR: Unable to load class 'org.gradle.api.internal.component.Usage'.