json总结
什么是json:
json是一种是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
json起源于JavaScript这门语言;json是存储和交换文本信息的语法,类似于XML。Json比XML更小、更快、更易解析;简而言之就是基于文本的标准数据交换格式,使应用程序通过计算机网络交换数据。随着使用广泛,每门语言几乎都有处理JSON的API;
json以"键值对"存储数据:例
var a ={"one":"一","two":"二","three":"三"}
取值就是:a.one的值就是一。
JSON可以有两种格式,一种是对象格式的,一种是数组格式的;
stringJson{"address":"北京","age":22,"name":"张三"} //json的对象格式的字符串
stringArray[{"address":"北京","age":22,"name":"张三"}] //json数组对象格式字符串
一、JAVA普通对象和json字符串的互相转换
java对象--->字符串
打印结果
定义了一个user实体类,使用JSONObject和JSONArray两种方式转化为JSON字符串;从结果中可以看出两种方法都可以把java对象转化为字符串,只是转化后的结构不同,一种是json对象格式的字符串,一种是json数组对象的字符串;
json字符串--->java对象
打印结果
使用JSONObject可以直接轻松的把JSON格式的字符串转化成java对象;
但是使用JSONArray的对象就没有那么容易了;因为有 [] 符号,所以在获得了JSONArray的对象之后,取第一个元素进行变形,然后使用JSONObject.toBean也可以获得了;
二、list和json字符串的相互转换
list-->json字符串
异常
在使用fromObject方法的时候会先进行参数类型的判断;
注释之后的打印结果
json串-->list
打印结果
字符串是带[] 的格式,所以选择使用JSONArray对象;有toArray、toList方法可以使用;
转化为jsva中的数组,或java中的list;实体类user.class;
三、map和json字符串的互转
map-->json
打印结果
json-->map
也可以使用使用toBean需要三个参数
打印结果
json map,list有什么区别
map是双列集合,每个节点有键有值,键为string,值为任何类,这就为拼接复杂数据形式提供了前提。list是单列集合,每个节点只有值,值是任何类,不过list有索引值。
List特点:有序,有索引,元素可以重复。
实现List接口的类:ArrayList、Vector、LinkedList
ArrayList:特点查询快,增删慢,线程不安全,不可以村空,效率高
Vector:特点查询快,增删慢,线程安全,不可以存空,效率低
LinkedList:特点查询慢,增删快,线程不安全,不可以存空,效率高
具体见下面集合神图:
js解析后台传来的json字符串
js是无法直接接收和使用json的数据的,用的话会出现undefined,所以需要转换一下。
可以使用JSON.parse() 可以解析json可是的的数据,并且还会对要解析的字符串进行格式检查,如果格式不正确则不进行解析;
有一个eval()可以解析任何字符串但是eval是不安全的。