从做程序到现在,用JSON也用了好些年了。突然发现JSON在put空值时有时会有key而有时又不会有。为了解除这个疑惑我做了以下测试。 我用的包是:json-lib-2.4-jdk15.jar
例一:
public static void main(String[] args) { JSONObject json = new JSONObject(); json.put("key", null); System.out.println(json); }
可以看到,控制输出:{}
由此可见,如果put一个空指针(null)给JSON,JSON会自动屏蔽此key不会有任何处理。
我们再来看看另外一个例子。
例二:
public static void main(String[] args) { JSONObject json = new JSONObject(); String value = "null"; json.put("key", value); System.out.println(json); }
控制台输出:{"key":null}
在例二中,我们将String类型的字符串value的值设置为“null”。此时JSON会带有key及value存在。大家请注意看value为null。并不是“null”不带引号。我猜测应该是JSON自动将字符串“null”转换为可识别的空值。如果我们将value的值设置为非“null”的任何字符,JSON都会带有引号。
综上所述:如果需要在value为空时不显示key,则可以直接传递null。但是如果需要不管在value是否为空时都带有key则需要手动将null转换为“null”字符串即可。
才疏学浅,有什么不正之处。希望高手赐教!
相关推荐
PHP 获取JSON json_decode返回NULL解决办法,不小心在返回的json字符串中返回了BOM头的不可见字符,某些编辑器默认会加上BOM头,这样处理才能正确解析json数据
后台接收到的数据一直显示null 原因: 使用@RequestBody标签接收json数据,参数类型不能用Sting 看这两个注解的作用 @RequestParam 是作用在形参列表上,RequestParam可以接受简单类型的属性,也可以接受对象类型。...
在Spring MVC框架中,我们经常需要处理JSON数据,这些数据可能包含null值。在某些情况下,为了保持数据的整洁和避免后端处理null值时出现异常,我们需要在数据传输前过滤掉这些null值。本教程将详细介绍如何使用...
总结来说,`json_decode()`解析JSON字符串返回NULL的问题往往与编码格式有关。在接收到JSON数据后,首先使用`html_entity_decode()`函数对HTML实体进行转换,然后用`stripslashes()`去除不必要的转义字符。通过这两...
C#中 Json 序列化去掉 null 值的方法 在 C# 中, Json 序列化是一种常用的数据交换格式,但是在实际应用中,我们经常会遇到对象的某些属性为 null 的情况,这时候我们需要将这些 null 值去掉,下面我们就来讨论如何...
这可能是为了保持与JSON数据源的一致性,或者有特定的需求来区分`nil`和`null`。 要实现这个功能,你需要对lua-cjson库的源代码做一些小的修改。通常,这种修改会在解码函数内部进行,当遇到JSON的`null`关键字时,...
然而,默认情况下,当Java对象中的某个属性值为`null`时,Fastjson在生成JSON字符串时会忽略这个属性,这可能会导致丢失关键信息。在某些场景下,我们希望`null`值仍然能在JSON中体现,以便接收方能够清楚地了解哪些...
- 在序列化时,需要注意处理null值,因为JSON不包含null,通常会转换为空字符串或undefined。 - 在处理日期时,不同语言可能有不同的处理方式,需要特别注意。 - 安全性问题:在处理用户输入的JSON时,应确保进行...
本文以spring boot项目为例给大家介绍SpringBoot项目中处理返回json的null值问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下
1. **JSON与Java对象的互转**:这个库提供了便捷的方法将Java对象(如Java Bean、Map、List等)转换为JSON格式的字符串,同时也支持将JSON字符串解析成相应的Java对象。这在处理前后端交互或者内部数据存储时非常...
在Java开发中,处理JSON数据时经常会遇到含有`null`值的情况。这些`null`值在某些场景下可能不希望出现在最终的JSON串中,因为它们可能会占用不必要的空间或者影响到接收端的解析。本篇文章将详细介绍如何在Java中...
当JSON对象中包含`null`值或空字段时,这不仅增加了不必要的网络传输负担,也可能对客户端解析造成困扰。本篇将详细介绍如何在Spring Boot中去除JSON返回值中的`null`和空字段。 首先,Spring Boot默认使用的JSON库...
是开源库Apache Commons的一个组件,提供了Java对象与JSON对象之间的转换功能。下面将详细阐述如何使用`JSONObject`进行JSON操作。 ### 1. 解析JSON字符串 当你从服务器获取或从文件读取到一个JSON字符串时,可以...
标题中的"NewtonJson_NewtonJson_JSON_json解析_presentd78_"可能指的是使用Newtonsoft.Json库进行JSON解析的演示或教程。 在.NET环境中,Newtonsoft.Json.dll是该库的主要组件,它包含了一系列类和方法,使得...
标题中的"ZUI2_JSON2_/UI2/CL_JSON_ui2/cl_json_abap_Ui2_cl_json_zui2_json_源"可能指的是一个与ZUI2相关的项目,它利用了ABAP类/UI2/CL_JSON来解析和生成JSON数据。描述中提到,我们需要用到这个类来将JSON格式的...
1. **类型(Type)**:JSON Schema定义了数据应遵循的类型,如字符串(string)、数字(number)、对象(object)、数组(array)、布尔值(boolean)和null。 2. **属性(Properties)**:在对象类型中,可以定义...
当尝试从一个无效的JSON字符串(如"123")创建一个`JSONObject`时,`JSONObject.fromObject()`方法并不会返回`null`,而是返回一个非空的`JSONObject`。因此,上述代码中的`if`条件永远不会满足,即使JSON对象实际上...
首先,JSON数据格式通常以键值对的形式存在,其结构包括对象(大括号{}包围的一组键值对)、数组(方括号[]包围的一组值)以及基本数据类型(如字符串、数字、布尔值和null)。在C++中,为了操作JSON,我们需要一个...
它主要由键值对(key-value pairs)组成,键用引号包围,值可以是字符串、数字、布尔值、数组、null或其他JSON对象。 2. **LabVIEW中的JSON支持**:从LabVIEW 2013版本开始,内置了对JSON的支持。提供了JSON解析器...
总结来说,生成不包含null或空字符串属性的JSON字符串是一个在数据交换与存储优化方面十分重要的实践。通过合理使用Gson库的自定义序列化选项,可以有效地提升数据处理的效率和性能,确保系统的高效运作。开发者应当...