json是java Script Object Natotion
它是前后台传输数据的一种格式
json的传输格式有三个
1 json 单个数据
2 json 数组或list集合
3 array 数组 arrayList(数组集合)
list 和数组的区别
list 里面是指定对象 规定了传输数据的类型\
将数组转换List后,不能对List增删,只能查改,否则抛异常
UnsupportedOperationException
不支持的操作异常
list转数组 支持增删改查
list是接口 ListArray 是lsit的实现类
json 对象 (K,V) kv键值对
List
List是接口,List特性就是有序,会确保以一定的顺序保存元素。在对List的使用中,List不能被构造,只能像下面那样使用
List list=new ArrayList();
这样使用的话,List中没有而ArrayList中有的方法将不能被list对象使用。这种用法属于Java的多态特性。当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的该同名方法。
List接口继承自Collection接口
public interface List<E> extends Collection<E>
(1)List:ArrayList是动态数组;LinkedList是一个双向链表,Stack是一个对象栈,遵循先进后出的原则。
(2)Set不包含重复元素。hashset原理和hashmap类似;treeset是一个自动排序的set,实现了SortedSet接口。
(3)Map:TreeMap可以根据Key值进行自动排序。
(4)Quene:阻塞式队列(ArrayBlockingQuene)和非阻塞式队列(PriorityQuene,内存允许,可以追加元素)。
List是一个接口,而ListArray是一个类。
ListArray继承并实现了List。
所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造。
List list; //正确 list=null;
List list=new List(); // 是错误的用法.
数组和集合的比较
数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下:
· 1:数组存放基本数据类型和对象,而集合类存放的都是对象的引用,而非对象本身!
· 2:数组长度固定无法动态改变,集合类容量动态改变。
· 3:数组无法判断其中实际存有多少元素,length只告诉了数组的容量,定义了多大的长度后,即使没有存放那么多的元素,没有存放的元素的空间就浪费了,而集合的size()可以确切知道元素的个数
· 4:数组仅采用顺序表方式, 集合有多种实现方式和不同适用场合。
· 5:集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性即可实现各种复杂操作,大大提高了软件的开发效率
#json格式的数据:(属性名称和字符串值必须使用双引号)
{ "name":"tom", "age":18 }
#json数据格式数组
["tom",18,"programmer"]
[{"name":"logo.png","url":"contract/27234_20180725.png"},{"name":"管理.png","url":"contract/45514_20180725.png"}]
json格式例子:
例子:
引用了工具类 XXX.class文件 里面封装了json转数组,数组转json方法
实际例子
字段 字段名 字段类型
attachUrls 附件地址 String
业务要求:
图片的地址可能是多个 把多个地址以json数组的形式存到attachUrls里面 ,attachUrls是String 类型的数据,所以需要进行序列化,把json数据存放到到数据库中,
客户端调数据时再进行反序列化,转成数组提供给客户端使用
把String类型的json数组序列化出来
名字+Pojo 的目的
Pojo Plain Old Java Objects
1、POJO(Plain Old Java Objects)是MartinFowler等发明的一个术语,用来表示普通的Java对象简单的Java对象,是为了避免和EJB混淆所创造的简称。
2、POJO 简单理解为不包含业务逻辑的单纯用来存储数据的 java类即可。一般POJO没有实现任何接口,没有集成任何父类(java.lang.Object除外)。
3、普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO。
POJO的意义就在于它的简单而灵活性,因为它的简单和灵活,使得POJO能够任意扩展,从而胜任多个场合,也就让一个模型贯穿多个层成为现实。