当前位置: 首页 > 编程日记 > 正文

处理 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

相关文章:

xml file too big to import to wordpress website

xml文件太大无法上传到wordpress 原因:从一个wordpress上导出了自己所有的文章,大概6~7MB,准备导入到本机自建的一个wordpress,不过上传文件有限制,最大2MB。 解决方法: 1. 网上很多关于修改配置文件的…

亚麻 面经_ml

Ds -如何预测一个人会不会在下一个月在Amazon买东西,有什么模型。https://mlwave.com/predicting-repeat-buyers-vowpal-wabbit/https://www.researchgate.net/post/How_can_I_study_the_past_spending_behaviour_of_a_customer_in_a_banking_perspective_and_predi…

ceph bluestore源码分析:C++ 获取线程id

阅读ceph源码过程中需要明确当前操作是由哪个线程发出&#xff0c;此时需要根据线程id来确认线程名称 C获取线程id是通过系统调用来直接获取 函数描述 头文件:<sys/syscall.h> 函数名称:syscall(SYS_gettid) 该函数直接返回了一个pid_t int类型的数字&#xff0c;即为当…

判断两直线段是否相交

转自&#xff1a;http://www.cnblogs.com/shengshouzhaixing/archive/2013/03/17/2964950.html //功能&#xff1a;求点在有向直线左边还是右边 //返回&#xff1a;0共线、1左边、-1右边 int left_right(point a,point b,double x,double y) { d…

led显示屏建设标准_户外LED显示屏3大防护标准_显示屏应对恶劣天气?

户外LED显示屏是现在LED显示屏应用最棺广泛的领域。面积巨大&#xff0c;显示效果震撼。同时为了更好的宣传效果&#xff0c;通常安装余楼顶&#xff0c;道路等空旷无遮挡地带。由于面积大且处于露天状态&#xff0c;LED显示屏面临巨大的环境挑战。经常要面对大风、暴雨、冰雹等…

转载 Sqlerver 计算 MD5

2019独角兽企业重金招聘Python工程师标准>>> 在SQl2005下自带的函数hashbytes() &#xff0c;此函数是微软在SQL SERVER 2005中提供的&#xff0c;可以用来计算一个字符串的 MD5 和 SHA1 值&#xff0c;使用方法如下&#xff1a; --获取123456的MD5加密串 select ha…

vim使用说明

模式 命令 操作 开始 vim 文件路径 打开|新建文件 命令模式 i 切换到输入模式 x 删除当前光标所在处的字符 : 切换到底线命令模式 shiftzz 保存并退出 移动光标的方法 h|← 左 j|↓ 下 k|↑ 上 l|→ 右 [Ctrl] [f] 输入模式下的page down [Ctrl] […

g++编译c++11特性 的.cc文件

写一个.cc文件&#xff0c;其中抱哈std::lock_guard以及std::thread等c11特性&#xff0c;开始使用gcc编译,过程中出现如下问题 gcc test_lock.cc -o test_lock This file requires compiler and library support for the ISO C 2011 standard. This support is currently ex…

联想r720内存频率_联想 IdeaPad14s 2020 轻薄本双十一促销

IT之家11月10日消息 作为一款主打轻薄的笔记本电脑&#xff0c;联想 IdeaPad14s 2020 自推出以来便受到不少办公学习用户的青睐。如今&#xff0c;这款联想 IdeaPad14s 2020 轻薄笔记本已开启双十一促销&#xff0c;搭载第十代酷睿处理器&#xff0c;采用 14 英寸双侧窄边框屏幕…

HDU 1273 漫步森林

比赛的时候是看见人家A得很快&#xff0c;但是一看的时候觉得没什么头绪&#xff0c;画了一个六边形的灵感来了&#xff0c;就YY一下 第一次提交写错了结束条件&#xff0c;之后意淫下公式交上去A了。 用五边形来解释&#xff1a; 1.设有五个点1&#xff0c;2,3,4,5, 2.从1开始…

在请求完成后回调delegate的方法。然而回调时经常遇到这种情况:delegate已经被释放...

最近的项目遇到了网络请求&#xff0c;需要在请求完成后回调delegate的方法。然而回调时经常遇到这种情况&#xff1a;delegate已经被释放&#xff0c;这时调用其方法则会引起crash。 objc的runtime中有两种判断类型的方式比较靠谱&#xff0c;他们可以直接取得任意一个objc_ob…

C++ 学习笔记之——文件操作和文件流

1. 文件的概念 对于用户来说&#xff0c;常用到的文件有两大类&#xff1a;程序文件和数据文件。而根据文件中数据的组织方式&#xff0c;则可以将文件分为 ASCII 文件和二进制文件。 ASCII 文件&#xff0c;又称字符文件或者文本文件&#xff0c;它的每一个字节放一个 ASCII 代…

利用blktrace分析磁盘I/O

原文&#xff1a;https://blog.csdn.net/ygtlovezf/article/details/80528300 blktrace对于分析block I/O是个非常好的工具&#xff0c;本篇文章记录了如何使用blktrace。 blktrace原理 blktrace是对通用块层&#xff08;block layer&#xff09;的I/O跟踪机制&#xff0c;它…

shiro 同时实现url和按钮的拦截_一个“保存”按钮同时存在“增删改”三种操作,该如何去实现?...

一般情况下&#xff0c;对表格中的数据进行“增删改”操作&#xff0c;都是直接操作数据库。现在有些项目因为设计或者优化的缘故&#xff0c;不对表格中的数据进行“增删改”&#xff0c;而是通过最后“保存”按钮的操作&#xff0c;一次性将数据传至服务器&#xff0c;由服务…

在网络通讯中,如何自己分配可用的端口号和获取自己的ip地址

在编写一些程序时&#xff0c;为了程序可以在其他电脑上也可以使用&#xff0c;而不用手动去更改ip,或者碰到端口不可用的情况。在这里找到了一个好的方法&#xff0c;实际使用也没有问题&#xff01;故此推荐给大家! 方案&#xff1a; 在构建网络时&#xff0c;使用&#xff1…

【翻译】ASP.NET WEB API异常处理

当一个web api抛出一个异常后 此异常会被转化成一个HTTP响应 错误代码为500的服务错误 但是如果你不想让客户端看到500的错误码 你也可以自定义错误码 如下代码当用户输入的ID没有与之相关的数据 则返回了错误码为404的错误 &#xff08;页面未找到&#xff09; public Product…

hook NtTerminateProcess进行应用的保护

这段时间在学习驱动&#xff0c;然后看到hook ssdt的代码&#xff0c;找了一个写的清晰的学习了一下&#xff1a;http://www.netfairy.net/?post218 这里是hook NtOpenProcess&#xff0c;但是想自己练手所以hook NtTerminateProcess&#xff0c;经过多次蓝屏后&#xff0c;然…

linux系统 长久记录所有用户所有操作记录

在linux系统中想要记录所有登录过当前系统的用户操作&#xff0c;排查有人对当前系统做的何种操作导致系统问题&#xff0c;可以按照如下方法进行。 前言 在描述操作步骤之前&#xff0c;先说一下系统环境变量的相关配置文件 ~/.bashrc和~/.bash_file&#xff0c;这两个文件…

jquery图片播放切换插件

点击这里查看效果可自定义数字样式和左右点击按钮这个更好&#xff1a;移入按钮切换版本更多图片轮播以下是HTML文件代码&#xff1a; 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transiti…

安卓饼状图设置软件_话单及银行卡交易智能分析软件

一、产品概况&#xff1a; 思迈奥SMILE数据智能分析软件是由我司自主设计与研发的一款结合在公安和检察院的侦查业务经验而定制研发的数据智能分析系统&#xff0c;包含于话单、电子银行账单、及其它数据(个人出行数据、社会资源数据、微信数据及其它聊天数据)等的数据导入、检…

跨区域MPLS TE

拓扑&#xff1a; R1配置&#xff1a; mpls label range 100 199 mpls traffic-eng tunnels interface Loopback0 ip address 192.168.1.1 255.255.255.255 ! interface Tunnel1 ip unnumbered Loopback0 tunnel mode mpls traffic-eng tunnel destination 192.168.1.4 tunnel …

C++智能指针: shared_ptr 实现详解

文章目录shared_ptr描述声明作用原理实现函数使用关于shared_ptr循环引用问题shared_ptr描述 声明 shared_ptr属于C11特性中新加的一种智能指针&#xff0c;它的实现方式是模版类&#xff0c;头文件<memory> template <class T> class shared_ptr 所以使用shared…

linux文本处理常用命令

linux文本处理常用命令 linux文本处理命令&#xff1a;grep、sed、printf、awk 1.grep grep的作用是按行查找字符&#xff0c;输出包含字符的行。 #从文件查询 grep hello filename.txt #从管道的输入查询 cat filename.txt|grep hello grep使用示例&#xff1a; grep的查找主要…

arduino 控制无刷电机_智能控制轮椅来了,残疾人的福音!

传统的轮椅已被证明是非常宝贵的工具&#xff0c;为残疾人提供了很多便利&#xff0c;但其只能限制坐在一个位置。外国的一个研究团队通过开发一个功能强大的多功能轮椅&#xff0c;使用户能够通过手机应用程序轻松地在各种各样的位置之间进行切换。(图片来自 IC photo)这是一种…

python科学计算整理

网站&#xff1a; http://bokeh.pydata.org/gallery.html 转载于:https://www.cnblogs.com/gogly/p/3453341.html

TP-link 841N 刷DD-WRT固件

2012年4月20号 今天&#xff0c;笔者逛“太平洋”的时候&#xff0c;发现了一个关于TP-Link 840N刷DD-WRT的帖子&#xff0c;进去逛了一会&#xff0c;突然记得自己家中的那个路由好像也是这个型号的&#xff0c;二话不说&#xff0c;果断收录这条资料&#xff0c;并把所需要的…

网格的铺设问题——骨牌

Problem Description 有一个大小是 2 x n 的网格&#xff0c;现在需要用2种规格的骨牌铺满&#xff0c;骨牌规格分别是 2 x 1 和 2 x 2&#xff0c;请计算一共有多少种铺设的方法。 Input 输入的第一行包含一个正整数T&#xff08;T<20&#xff09;&#xff0c;表示一共有 T…

C++智能指针:weak_ptr实现详解

文章目录weak_ptr描述声明作用原理实现函数成员使用总结weak_ptr描述 声明 头文件&#xff1a;<memory> 模版类&#xff1a;template <class T> class weak_ptr 声明方式&#xff1a;std::weak_ptr<type_id> statement 作用 根据boost库的官方描述&#…

在PHP中使用全局变量的几种方法

简介即使开发一个新的大型PHP程序&#xff0c;你也不可避免的要使用到全局数据&#xff0c;因为有些数据是需要用到你的代码的不同部分的。一些常见的全局数据有&#xff1a;程序设定类、数据库连接类、用户资料等等。有很多方法能够使这些数据成为全局数据&#xff0c;其中最常…

python处在哪个阶段_python 基础复习

1、简述cpu、内存、硬盘的作用cpu(1)cpu&#xff1a;处理逻辑运算、算术运算(2)cpu&#xff1a;接受指令传给电脑硬件&#xff0c;让其运行内存&#xff1a;(1)内存&#xff1a;从硬盘中读取数据&#xff0c;供其cpu调取指令运行&#xff0c;短暂的存贮数据&#xff1b;运行速度…