1. JSONObject对象

1.1. JSONObject是一个无序的键值对集合。它的外部文本形式是一个用大括号括起来的字符串, 使用冒号分割键和值, 并且是用逗号分隔多个值。

1.2. JSONObject可以添加boolean、int、long、Double、String、JSONNull、JSONObject、JSONArray、Object。

1.3. JSONObject可以把JSONObject对象转换为Java对象, 也可以把Map、JavaBean对象转换为JSONObject对象。

2. JSONArray对象

2.1. JSONArray是值的有序序列。它的外部文本形式是一个用方括号括起来的字符串, 并且是用逗号分隔多个值。

2.2. JSONArray可以添加boolean、int、long、Double、String、JSONNull、JSONObject、JSONArray、Object。

2.3. JSONArray可以把JSONArray对象转换为Java数组或Java集合, 也可以把Java对象转换为JSONArray对象。

3. JsonConfig对象

3.1. 无论出于何种原因, 某些时候, 我们需要对JSON字符串和Java对象互相转换的过程加以控制, 最常见需求如数值格式化和日期格式化。Json-lib提供了JsonConfig对象, 该对象能够深刻影响Java对象和JSON字符串互相转换的行为。

4. toString()方法

4.1. String toString(), 获取JSONObject、JSONArray的JSON文本。

5. isEmpty()方法

5.1. boolean isEmpty(), 判断JSONObject是否有key, 如果JSONObject没有key返回true, 反之返回false。

5.2. boolean isEmpty(), 判断JSONArray是否有元素, 如果JSONArray没有元素返回true, 反之返回false。

6. isArray()方法

6.1. boolean isArray(), 判断JSONObject、JSONArray对象是否是JSONArray, 如果是返回true, 反之返回false。

7. clear()方法

7.1. void clear(), 清空JSONObject、JSONArray对象。

8. size()方法

8.1. int size(), 获得JSONObject储存key的数量。

8.2. int size(), 获得JSONArray储存元素的数量。

9. JsonConfig对象

9.1. setRootClass(Class rootClass)设置JsonConfig当前的root Class。JSON对象转Java对象的时候, JSON对象的值匹配这个root Class的类型。

9.2. setClassMap(Map classMap)设置JsonConfig当前的Class Map。JSON对象转Java对象的时候, JSON对象里面还包含JSON对象数据, 可以根据这数据的key, 在Class Map里获取key对应的值的类型。

9.3. getRootClass()获得JsonConfig当前的root Class。

9.4. getClassMap()获得JsonConfig当前的Class Map。

10. 例子

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

10.2. 新建ToString.java

package com.fj.oac;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;/*** String toString(), 获取JSONObject、JSONArray的JSON文本。*/
public class ToString {public static void main(String[] args) {// 创建一个没有任何值的JSONObject类型的jsonObject对象JSONObject jsonObject = new JSONObject();jsonObject.accumulate("name", "HUAWEI P40 Pro"); // 给jsonObject对象累积值// 创建一个没有任何值的JSONArray类型的jsonArray对象JSONArray jsonArray = new JSONArray();jsonArray.add(true); // 给jsonArray对象添加值jsonArray.add(5988); // 给jsonArray对象添加值System.out.println(jsonObject.toString()); // 获取jsonArray对象的JSON文本。System.out.println(jsonArray.toString()); // 获取jsonArray对象的JSON文本。}
}

10.3. 运行ToString.java

10.4. 新建IsEmpty.java

package com.fj.oac;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;/*** boolean isEmpty(), 判断JSONObject是否有key, 如果JSONObject没有key返回true, 反之返回false。* boolean isEmpty(), 判断JSONArray是否有元素, 如果JSONArray没有元素返回true, 反之返回false。*/
public class IsEmpty {public static void main(String[] args) {// 创建一个没有任何值的JSONObject类型的jsonObject对象JSONObject jsonObject = new JSONObject();jsonObject.accumulate("name", "HUAWEI P40 Pro"); // 给jsonObject对象累积值// 创建一个没有任何值的JSONArray类型的jsonArray对象JSONArray jsonArray = new JSONArray();System.out.println("jsonObject是否为空: " + jsonObject.isEmpty()); // 判断jsonObject对象是否有元素System.out.println("jsonArray是否为空: " + jsonArray.isEmpty()); // 判断jsonArray对象是否有元素}
}

10.5. 运行IsEmpty.java

10.6. 新建IsArray.java

package com.fj.oac;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;/*** boolean isArray(), 判断JSONObject、JSONArray对象是否是JSONArray, 如果是返回true, 反之返回false。*/
public class IsArray {public static void main(String[] args) {// 创建一个没有任何值的JSONObject类型的jsonObject对象JSONObject jsonObject = new JSONObject();jsonObject.accumulate("name", "HUAWEI P40 Pro"); // 给jsonObject对象累积值// 创建一个没有任何值的JSONArray类型的jsonArray对象JSONArray jsonArray = new JSONArray();jsonArray.add(true); // 给jsonArray对象添加值jsonArray.add(5988); // 给jsonArray对象添加值System.out.println("jsonObject是否是数组类型: " + jsonObject.isArray()); // 判断jsonObject对象是否是JSONArraySystem.out.println("jsonArray是否是数组类型: " + jsonArray.isArray()); // 判断jsonArray对象是否是JSONArray}
}

10.7. 运行IsArray.java

10.8. 新建Clear.java

package com.fj.oac;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;/*** void clear(), 清空JSONObject、JSONArray对象。*/
public class Clear {public static void main(String[] args) {// 创建一个没有任何值的JSONObject类型的jsonObject对象JSONObject jsonObject = new JSONObject();jsonObject.accumulate("name", "HUAWEI P40 Pro"); // 给jsonObject对象累积值// 创建一个没有任何值的JSONArray类型的jsonArray对象JSONArray jsonArray = new JSONArray();jsonArray.add(true); // 给jsonArray对象添加值jsonArray.add(5988); // 给jsonArray对象添加值System.out.println("清空前:");System.out.println(jsonObject.toString());System.out.println(jsonArray.toString());jsonObject.clear(); // 清空jsonObjectjsonArray.clear(); // 清空jsonArraySystem.out.println("清空后:");System.out.println(jsonObject.toString());System.out.println(jsonArray.toString());}
}

10.9. 运行Clear.java

10.10. 新建Size.java

package com.fj.oac;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;/*** int size(), 获得JSONObject储存key的数量。* int size(), 获得JSONArray储存元素的数量。*/
public class Size {public static void main(String[] args) {// 创建一个没有任何值的JSONObject类型的jsonObject对象JSONObject jsonObject = new JSONObject();jsonObject.accumulate("name", "HUAWEI P40 Pro"); // 给jsonObject对象累积值// 创建一个没有任何值的JSONArray类型的jsonArray对象JSONArray jsonArray = new JSONArray();jsonArray.add(true); // 给jsonArray对象添加值jsonArray.add(5988); // 给jsonArray对象添加值System.out.println("jsonObject储存key的数量: " + jsonObject.size()); // 获得jsonObject储存key的数量。System.out.println("jsonArray储存元素的数量: " + jsonArray.size()); // 获得jsonArray储存元素的数量。}
}

10.11. 运行Size.java

10.12. 新建Sensor.java

package com.fj.oac;import java.io.Serializable;/*** 传感器*/
public class Sensor implements Serializable {private static final long serialVersionUID = 1L;private Boolean weightSensor; // 重力传感器private Boolean fingerSensor; // 指纹传感器private String otherSensor; // 其它传感器public Sensor() {}public Sensor(Boolean weightSensor, Boolean fingerSensor, String otherSensor) {this.weightSensor = weightSensor;this.fingerSensor = fingerSensor;this.otherSensor = otherSensor;}public Boolean getWeightSensor() {return weightSensor;}public void setWeightSensor(Boolean weightSensor) {this.weightSensor = weightSensor;}public Boolean getFingerSensor() {return fingerSensor;}public void setFingerSensor(Boolean fingerSensor) {this.fingerSensor = fingerSensor;}public String getOtherSensor() {return otherSensor;}public void setOtherSensor(String otherSensor) {this.otherSensor = otherSensor;}@Overridepublic String toString() {return "{weightSensor=" + weightSensor + ", fingerSensor=" + fingerSensor + ", otherSensor=" + otherSensor + "}";}
}

10.13. 新建JSONConfigRootClassClassMap.java

package com.fj.oac;import java.util.HashMap;
import java.util.Map;
import net.sf.json.JsonConfig;/*** JsonConfig* 1. setRootClass(Class rootClass)设置JsonConfig当前的root Class。JSON对象转Java对象的时候, JSON对象的值匹配这个root Class的类型。* 2. setClassMap(Map classMap)设置JsonConfig当前的Class Map。JSON对象转Java对象的时候, JSON对象里面还包含JSON对象数据, 可以根据这数据的key, 在Class Map里获取key对应的值的类型。* 3. getRootClass()获得JsonConfig当前的root Class。* 4. getClassMap()获得JsonConfig当前的Class Map。*/
public class JSONConfigRootClassClassMap {public static void main(String[] args) {Map<String, Class<?>> classMap = new HashMap<>();classMap.put("map", Map.class);classMap.put("sensor", Sensor.class);JsonConfig jsonConfig = new JsonConfig();jsonConfig.setRootClass(Map.class);jsonConfig.setClassMap(classMap);System.out.println("root class: " + jsonConfig.getRootClass());System.out.println("class map: " + jsonConfig.getClassMap());}
}

10.14. 运行JSONConfigRootClassClassMap.java

002_JSONObject、JSONArray和JsonConfig对象简单使用相关推荐

  1. uniCloud云函数 云对象简单使用

    云对象简单使用 今天看了下文档 发现多了个 云对象 目前需要下载 3.4.0及以上版本 目前为 alpha版本 个人觉得云对象 让我们更加的能 贴近面向对象 https://www.dcloud.io ...

  2. 将获取到的JSONObject和JSONArray转换为实体对象

    1.最近下一个项目,api获取的数据是json格式的,需要处理.返回为一个(JSONObject对象)由于不能get ,set很是麻烦. 而且数据命名也是很奇怪!我最后想了这个办法.如果有比我这个方法 ...

  3. HttpWebRequest WebResponse 对象简单了解

    1.HTTP亦即Hpyer Text Transfer Protocal的缩写,它是现代互联网上最重要的一种网络协议,超文本传输协议位于TCP/IP协议的应用层,是一个面向   无连接.简单.快速的C ...

  4. java面向对象计算器怎么写_Java对象简单实用案例之计算器实现代码

    对 Java中的对象与属性,方法的使用,简单写了个案例 import java.util.Scanner; class Calculste { int a; //定义两个整数 int b; Strin ...

  5. Application对象 简单的聊天室

    使用Application对象可以使得多个用户在访问同一个asp.net应用程序时,能够共享信息,在多个用户同时访问asp.net时,都会产生一个Application对象.通常可以把共享的数据变量存 ...

  6. jsonarray转化list对象_第8篇:Cython的面向对象--Python类 vs Cython扩展类

    在Python中,一切都是对象. 具体来说是什么意思? 在最基本的层面上,一个对象具有三样东西 标识(id):对象的标识将其与其他对象区分开来,并由id内置函数提供 属性值(value):对象的值就是 ...

  7. Aplication对象 简单聊天室(16)

    使用Application对象可以使得多个用户在访问同一个asp.net应用程序时,能够共享信息,在多个用户同时访问asp.net时,都会 产生一个Application对象.通常可以把共享的数据变量 ...

  8. JS(七)内置对象-简单类型与复杂类型

    1.内置对象 JavaScript 中的对象分为3种:自定义对象.内置对象.浏览器对象 前面两种对象是JS基础内容,属于ECMAScript : 第三种浏览器对象属于我们JS 独有的,属于JS API ...

  9. JDBC 利用反射技术将查询结果封装为对象(简单ORM实现)

    ORM(Object Relational Mapping)对象关系映射 public class ORMTest { public static void main(String[] args) t ...

最新文章

  1. 用ASP.NET如何读取NT用户名
  2. SDK与API的联系与区别
  3. java.util.concurrent BlockingQueue详解
  4. go定时读取mysql_golang+数据库定时任务
  5. 网友写的ELK安装步骤
  6. MyBatis 实际使用案例-核心配置解读
  7. Java Fork/Join 框架
  8. 159个故事串起三千年大历史!这套“儿童版史记”太无敌了!
  9. c语言中x的n次方怎么表示_线性代数的本质及其在AI中的应用
  10. iptables 学习笔记 二 参数指令
  11. webpack自定义打包命令
  12. linux配置caffe环境,ubuntu14.04环境下配置caffe
  13. Sharding-Sphere,Sharding-JDBC_分库分表(垂直分库_垂直分表)_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记003
  14. git使用之搭建git仓库
  15. 公司技术部的罗强月薪10000,要跳槽
  16. h5如何动态获取键盘高度_H5 键盘兼容性小结
  17. 【转】VC6下安装与配置OpenCV1.0
  18. 系统防御工程v0.2
  19. 请问,非计算机专业,只为软考中级,哪一种最容易过?
  20. 解决UmengSDK社会化分享过程中微信,QQ,新浪微博分享不成功的问题

热门文章

  1. 超图软件:以用户价值为源点做精准化的研发
  2. 《Adobe Flash CS5中文版经典教程》——1.3 使用“库”面板
  3. session:的生命周期
  4. CPU访问计算机各组件周期
  5. 2015年3月-前端开发月刊
  6. Rhel5.6下构建在线邮件服务系统并实现不同网段不同域名间的邮件互发
  7. 用.NET CF进行HardReset?
  8. AIX 用户密码永不过期
  9. python socketserver实现服务器端执行命令 上传文件 断点续传
  10. Oracle 截取字符串,取系统时间