003_JSONNull对象介绍

1. JSONNull.getInstance()获取一个单例的JSONNull对象。

2. JSONNull对象toString()后, 获得的是"null"字符串。

3. JSONNull对象等同于Java的null。

4. JSONNull对象等同于JavaScript的null值。

5. JSON数据类型的Null类型的值等同于JavaScript的null值。

6. JSONObject可以存放JSONNull对象, 实际上存放的就是"null"字符串。

7. JSONArray可以存放JSONNull对象, 实际上存放的就是"null"字符串。

8. JSONObject和JSONArray, 存放JSONNull对象、null对象、"null"字符串, 效果都是存放"null"字符串。

9. 例子

9.1. 新建一个名为JSONNull的Java项目, 同时添加相关jar包。

9.2. 新建JsonLibJSONNull.java

package com.fj.jn;

import net.sf.json.JSONArray;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;

/**
 * JSONNull
 * 1. JSONNull.getInstance()获取一个单例的JSONNull对象。
 * 2. JSONNull对象toString()后, 获得的是"null"字符串。
 * 3. JSONNull对象等同于Java的null。
 * 4. JSONNull对象等同于JavaScript的null值。
 * 5. JSON数据类型的Null类型的值等同于JavaScript的null值。
 * 6. JSONObject可以存放JSONNull对象, 实际上存放的就是"null"字符串。
 * 7. JSONArray可以存放JSONNull对象, 实际上存放的就是"null"字符串。
 * 8. JSONObject和JSONArray, 存放JSONNull对象、null对象、"null"字符串, 效果都是存放"null"字符串。
 */
public class JsonLibJSONNull {
	public static void main(String[] args) {
		// 获取一个单例的JSONNull对象
		JSONNull jsonNull = JSONNull.getInstance();
		
		System.out.println("JSONNull对象toString(): " + jsonNull.toString()); // 获取"null"字符串值
		System.out.println("JSONNull对象toString()和\"null\"字符串相等: " + (jsonNull.toString() == "null")); // JSONNull对象toString()后和"null"字符串相等
		System.out.println("JSONNull等同于Java的null: " + jsonNull.equals(null)); // JSONNull等同于Java的null
		// JSONNull并不等于Java的null(JSONNull也是一个Java对象, 实例化了所以不等于null)
		System.out.println("JSONNull并不等于Java的null: " + (jsonNull == null)); 
		
		// 创建一个没有任何值的JSONObject类型的jsonObject对象
		JSONObject jsonObject = new JSONObject();
		// jsonObject对象可以存放JSONNull对象, 实际上存放的就是"null"字符串
		jsonObject.accumulate("jsonNull", jsonNull);
		// jsonObject对象可以存放null对象, 实际上存放的也是"null"字符串
		jsonObject.accumulate("nullObj", null);
		// jsonObject对象可以存放"null"字符串
		jsonObject.accumulate("nullStr", "null");
		System.out.println(jsonObject.toString());
		System.out.println("JSONObject中JSONNull和null对象相等: " + (jsonObject.get(0) == jsonObject.get(1)));
		System.out.println("JSONObject中JSONNull和\"null\"字符串相等: " + (jsonObject.get(0) == jsonObject.get(2)));
		System.out.println("JSONObject中null对象和\"null\"字符串相等: " + (jsonObject.get(1) == jsonObject.get(2)));
		
		// 创建一个没有任何值的JSONArray类型的jsonArray对象
		JSONArray jsonArray = new JSONArray();
		// jsonArray对象可以存放JSONNull对象, 实际上存放的就是"null"字符串
		jsonArray.add(jsonNull); 
		// jsonArray对象可以存放null对象, 实际上存放的也是"null"字符串
		jsonArray.add(null);
		// jsonArray对象可以存放"null"字符串
		jsonArray.add("null");
		System.out.println(jsonArray.toString());
		System.out.println("JSONArray中JSONNull和null对象相等: " + (jsonArray.get(0) == jsonArray.get(1)));
		System.out.println("JSONArray中JSONNull和\"null\"字符串相等: " + (jsonArray.get(0) == jsonArray.get(2)));
		System.out.println("JSONArray中null对象和\"null\"字符串相等: " + (jsonArray.get(1) == jsonArray.get(2)));
	}
}

9.3. 运行项目

10. JSON数据类型的Null类型的JavaScript例子

10.1. 编辑nullValue2JSONNull.html

<!DOCTYPE html>
<html>
	<head>
		<title>JSON数据类型的Null类型的值等同于JavaScript的null值</title>
		<meta charset="utf-8" />
	</head>
	<body>
		<script type="text/javascript">
			var undefinedVar; // JavaScript的undefined类型
			var nullVar = null; // JavaScript的null值

			// undefined类型的值被JSON清空, null值转换为JSON的Null类型的值null
			var obj = {undefinedKey:undefinedVar, nullKey:nullVar};
			// JavaScript对象转换为JSON
			var jsonStr = JSON.stringify(obj);
			document.write(jsonStr + "<br />");

			// JSON类型的字符串
			var text = '{"nullKey":null}';
			// JSON类型的字符串转换为JavaScript对象
			var object = JSON.parse(text);
			document.write("JSON数据类型的Null类型的值等同于JavaScript的null值: " + (object.nullKey == nullVar));
		</script>
	</body>
</html>

10.2. 运行程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值