处理 JSON null 和空数组及对象
描述了对 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 和空数组及对象相关推荐
- PHP json_encode转换空数组为对象
问题描述: php在给端提供接口,比如PC和安卓,ios等,如果返回json格式的数据,当返回数据的为数组,且key为字符串时,json化后将返回jsonObject,但是如果是空数组,有可能返回的就 ...
- 数组为空数组,判断数组长度不等于0
项目中遇到如果后台返回数据为null或者空数据 例如返回这样的数据: 为了美观,我想将相对应没有数据的图片隐藏掉 我的判断是不等于null或者数组长度不等于0 console.log(this.for ...
- java返回空集合对象_返回null或空集合更好吗?
这是一个普遍的问题(但是我正在使用C#),最好的方法是什么(最佳实践),对于以集合为返回类型的方法,您是否返回null或空集合? #1楼 我想在这里举例说明. 在这里考虑一个案例. int total ...
- php的对象和数组应该学js,JavaScript数组与对象的常用方法及 json 的序列化
一.JavaScript数据类型: 1- 原始类型:number(数值),string(字符串),boolean(布尔值)var age = 18; var username = "admi ...
- JavaScript 判断空对象空数组
JavaScript 判断空对象空数组 一.为什么判断空数组空对象会比较麻烦 二.判断空数组的方法 三.判定空对象的方法 四.一个判断参数为空的函数封装 来源: https://www.jianshu ...
- js 判断是否为空对象、空数组
当需要判断参数是否为空时,总希望 js 能够提供原生的判断方法,可惜并没有,只能自己封装了. 1 function isEmpty(obj) { 1 // 检验 undefined 和 null 1 ...
- c#json对象转数组_数组和对象的区别
数组和对象两者都可以用来表示数据的集合,曾一度搞不清楚"数组"(array)和"对象"(object)的根本区别在哪里. 有一个数组a=[1,2,3,4],还有 ...
- javascript 数组和对象的浅复制和深度复制 assign/slice/concat/JSON.parse(JSON.stringify())...
javascript 数组和对象的浅度复制和深度复制 在平常我们用 '='来用一个变量引用一个数组或对象,这里是'引用'而不是复制下面我们看一个例子引用和复制是什么概念 var arr=[1,2,3, ...
- jQuery的ajax的post请求json格式无法上传空数组
问题描述:在和后端对接时,使用jquery的ajax的post方式向后端传递一序列约定好格式的对象数组.遇到了一个现象:如果对象中的数组是空数组,那么在请求参数中是不会出现的. 以下是数据的对比: ...
最新文章
- LINUX 基础命令 一
- 正压防爆气体分析系统
- 神经网络优化中的Weight Averaging
- kafka删除队列_没想到 Kafka 还会这样问,学会这些带你轻松搞定大厂面试!
- mysql多表关联更新
- python能做大型游戏吗_python有做大型游戏的潜力吗?
- css_oneday
- Python __getattr__和__setattr__方法介绍
- c++_导入/导出excel文件
- 关于Acess 图片存为ole类型,数据集合显示
- 遗传算法的基本概念和实现(附 Java 实现案例)
- 【物流选址】基于matlab佛洛依德算法求解物流选址问题【含Matlab源码 892期】
- 2021年10种最佳数据库管理软件
- 利用easyCHM制作JavaAPI帮助文档
- html表头固定原理,html Table 表头固定的实现
- proteus——rs-232双机通讯
- Linux嵌入式开发必读推荐书籍
- 串口通信与TTL和RS-232
- 13树莓派手动安装Home Assistant
- 三相逆变器双pi控制器参数如何调节_电工学习笔记 - 比例谐振控制器- PR controller...
热门文章
- nginx介绍及常用功能
- linux高效办公环境配置(vim、tmux、bash_profile)
- 软件工程——视频总结
- mysql/mariadb centos7 修改root用户密码及配置参数
- redis 双写一致性
- SpringBoot-web开发(四): SpringMVC的拓展、接管(源码分析)
- Linux 内核,30 年C 语言将升级至 C11
- H.264 Video Codec速度和质量
- ajax交互扩展遇到的问题,ajax autocomplete扩展程序无法正常工作
- ERROR: Unable to load class 'org.gradle.api.internal.component.Usage'.