就是一种数据格式;比如说,我们现在规定,有一个txt文本文件,用来存放一个班级的成绩;然后呢,我们规定,这个文本文件里的学生成绩的格式,是第一行,就是一行列头(姓名 班级 年级 科目 成绩),接下来,每一行就是一个学生的成绩。那么,这个文本文件内的这种信息存放的格式,其实就是一种数据格式。
学生 班级 年级 科目 成绩
张三 一班 大一 高数 90
李四 二班 大一 高数 80
ok,对应到JSON,它其实也是代表了一种数据格式,所谓数据格式,就是数据组织的形式。比如说,刚才所说的学生成绩,用JSON格式来表示的话,如下:
[{"学生":"张三", "班级":"一班", "年级":"大一", "科目":"高数", "成绩":90}, {"学生":"李四", "班级":"二班", "年级":"大一", "科目":"高数", "成绩":80}]
其实,JSON,很简单,一点都不复杂,就是对同样一批数据的,不同的一种数据表示的形式。
JSON的数据语法,其实很简单:如果是包含多个数据实体的话,比如说多个学生成绩,那么需要使用数组的表现形式,就是[]。对于单个数据实体,比如一个学生的成绩,那么使用一个{}来封装数据,对于数据实体中的每个字段以及对应的值,使用key:value的方式来表示,多个key-value对之间用逗号分隔;多个{}代表的数据实体之间,用逗号分隔。
扩展一下:
JSON在企业级项目开发过程中,扮演的角色是无比重要的。最常用的地方,莫过于基于Ajax的前端和后端程序之间的通信。比如说,在前端页面中,可以不刷新页面,直接发送一个Ajax异步请求到后端,后端返回一个JSON格式的数据,然后前端使用JSON格式的数据,渲染页面中的对应地方的信息。
在我们的项目中,JSON是起到了什么作用呢?我们在task表中的task_param字段,会存放不同类型的任务对应的参数。比如说,用户访问session分析模块与页面单跳转化率统计模块的任务参数是不同的,但是,使用同一张task表来存储所有类型的任务。那么,你怎么来存储不同类型的任务的不同的参数呢?你的表的字段是事先要定好的呀。
所以,我们采取了,用一个task_param字段,来存储不同类型的任务的参数的方式。task_param字段中,实际上会存储一个任务所有的字段,使用JSON的格式封装所有任务参数,并存储在task_param字段中。就实现了非常灵活的方式。
如何来操作JSON格式的数据?
比如说,要获取JSON中某个字段的值。我们这里使用的是阿里的fastjson工具包。使用这个工具包,可以方便的将字符串类型的JSON数据,转换为一个JSONObject对象,然后通过其中的getX()方法,获取指定的字段的值。