介绍

1、JSONObject只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。

2、JSON(JavaScript Object Notation的首字母缩写)是一种轻量级数据交换格式,最常用于客户端 - 服务器通信。它既易于读/写,又与语言无关。JSON值可以是另一个JSON 对象,数组,数字,字符串,布尔值(true / false)或null。也是后端开发中经常要接触的一个一个类,将要数据封装成json然后传递给前端。

依赖

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.46</version>
</dependency>

1.**JSONObject继承自JSON ,JSON是Fastjson的一个主要类,常常需要调用JSON的两个方法: **

  • toJSONString(Object)【将指定的对象序列化成Json表示形式】
  • parseObject(String, Class)【将json反序列化为指定的Class模式】

2.JSONObject实现了Map,可见JSONObject是一个Map类型的数据结构,Map接口提供了很多操作map的方法,常用的增删改查。
3.JSONObject还实现了Cloneable, Serializable, InvocationHandler,说明JSONObject支持拷贝(并且JSONObject重写了clone方法),支持序列化与反序列化,InvocationHandler是通过一个代理实例零调用处理程序实现的接口,即标记使用Java动态代理机制。JDK文档指示:每个代理实例都有一个相关的调用处理程序。当一个方法是在一个代理实例调用,调用的方法进行编码并派遣其调用处理程序的invoke方法。

JSON Object 包含三个字段

1、serialVersionUID

(版本标识)是 Java 为每个序列化类产生的版本标识,可用来保证在反序列时,发送方发送的和接受方接收的是可兼容的对象。如果接收方接收的类的 serialVersionUID 与发送方发送的 serialVersionUID 不一致,进行反序列时会抛出 InvalidClassException。序列化的类可显式声明 serialVersionUID 的值 。当显式定义 serialVersionUID 的值时,Java 根据类的多个方面(具体可参考 Java 序列化规范)动态生成一个默认的 serialVersionUID 。尽管这样,还是建议你在每一个序列化的类中显式指定 serialVersionUID 的值,因为不同的 jdk 编译很可能会生成不同serialVersionUID 默认值,进而导致在反序列化时抛出 InvalidClassExceptions 异常。所以,为了保证在不同的 jdk 编译实现中,其 serialVersionUID 的值也一致,可序列化的类必须显式指定 serialVersionUID 的值。另外,serialVersionUID 的修饰符最好是 private,因为 serialVersionUID 不能被继承,所以建议使用 private 修饰 serialVersionUID 。

2、DEFAULT_INITIAL_CAPACITY

默认初始容量,大小为16

3、Map<String, Object> map

用于存储的的容器,JSONObject常用的两种类型,LinkedHashMap(有序)和HashMap类型。默认初始大小为16.

常用方法

  • containsValue(Object value): 判断JSONObject是否包含此value值
  • containsKey(Object key) 判断JSONObject是否包含此key值
  • get(Object key):通过key获取对应的key-value对象。底层是先调用Map的get方法获取对象,如果获取的对象为空并且key为数值型则转成字符串型再次调用Map的get方法。

文档参考:https://blog.csdn.net/Butterfly_resting/article/details/100053544

JSONObject详解相关推荐

  1. java object数组转实体类_详解Java中String JSONObject JSONArray List实体类转换

    JSON使用阿里的fastJson为依赖包 gradle依赖管理如下: compile group: "com.alibaba", name: "fastjson&quo ...

  2. JSONObject使用方法详解

    package com.xxh.json;import com.songfayuantools.entity.UserInfo;import net.sf.json.JSON; import net. ...

  3. android Json解析详解

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语 言的支持),从而可以在不同平台间进行数 ...

  4. java构造和解析json_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  5. java中将json字符串_Java中JSON字符串与java对象的互换实例详解

    在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...

  6. JSONSerialization.ReadingOption详解

    JSONSerialization.ReadingOption详解 官网链接: JSONSerialization 在通过JSONSerialization来转换json,你有没有这样的疑问了???? ...

  7. java json解析 代码_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  8. Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  9. Postman 使用详解

    转自: http://blog.csdn.net/flowerspring/article/details/52774399 Postman 使用详解 阅读 6754收藏 3022016-6-9 作者 ...

最新文章

  1. hadoop定位文件读取
  2. 街电与搜电网络营销外包合并,怪兽充电终上市共享充电市场将迎来新变化
  3. IP与DSCP优先级
  4. oracle12c em 空白,Oracle12C 开启关闭em
  5. pyspark union代码示例
  6. while read line 用法详细介绍
  7. ABP入门系列(5)——展现层实现增删改查
  8. Vue中组件间通信的方式
  9. Android系统(17)---Context 原理
  10. Java枚举(Enum)类型使用的正确姿势
  11. MyBatis 入门到精通(一) 了解MyBatis获取SqlSession
  12. Pix4D生成正射影像记录
  13. 产品经理的第一堂课(四):质量还是质量
  14. 快速理解和掌握MIB
  15. Docker安装、配置国内镜像加速器
  16. java lockmodetype_java – 如何使用Spring Data JPA查找实体时如何启用LockModeType.PESSIMISTIC_WRITE?...
  17. 面试官:讲讲互斥锁、自旋锁吧
  18. 自学编程的好方法,直接省了几万块钱报班,不收藏就可惜了
  19. 神器啊,理工男的春天来了!
  20. map获取所有的key并返回列表

热门文章

  1. python在平面设计中的作用_平面构成在平面设计中的作用
  2. sublime text配置fcitx输入法
  3. Problem 1802 —— 火车调度
  4. Linux性能监控(CPU监控)
  5. word2010快捷键
  6. Ubuntu篇——Ubuntu虚拟机网络设置
  7. 多服务器共享Session的解决方案
  8. CF716B Complete the Word
  9. **Java满汉全席中的坏味道**
  10. 密信浏览器是什么?密信浏览器的主要特性 1