什么是JSON?
JSON(JavaScriptObjectNotation,JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
json前两个字就是js,说明其与js必然存在一些联系,其实json可以理解为盛装js数据的一个容器,说白了,就是储存数据的一个小玩意儿。其实如果你身边有搞前端的同学,不难发现,他们会经常说接口、报文,对于一个后端小白的我来说,也很想明白这究竟是个什么东东,最近工作一直做前后端开发,所以跟json结下了缘。
前端中json大致是形如这个样子的,就是冒号左边一个名字,右边是具体的值,其实就是键值对。。是不是很简单,如果不简单也不会这么火了↓↓↓
var json = {'xxx':'xxx'};
右边可以是一个数字,可以是一个对象,可以是字符串,可以是一个数组,可以是一个json,我给大家举个例子大家就明白了,既然是容器,必然要有大的,有小的,啥都能装
装数字:
var feeInfoList = {'num':11};
通过feeInfoList.num就可以拿到num对应的值:1很简单吧?装字符串:
var feeInfoList = {'name':'小斌哥'};
通过feeInfoList.name,就能拿到带双引号的'小斌哥'啦~装对象:
var 小斌哥= {'name':'小斌哥', 'age':21, 'sex':'爷们'};
小斌哥这个对象里面包含姓名、年龄和性别,多个数据可以通过逗号隔开,小斌哥这个对象就生成了!!装数组
var array = {'array':[
{
'name':'小斌哥',
'sex':'爷们',
'age':21
},
{
'name':'貂蝉',
'sex':'美女',
'age':18
}
]};
直接看可能比较懵,但是仔细看,键是'array',值就是后面的一大坨,对吗?那一大坨拆开看,是不是就是一个个的对象,对象之间用逗号隔开了,对象里面有姓名、性别和年龄,每一个属性都是用键值对装的,并且用逗号隔开,是不是很容易呢,其实如果别人给你一大堆报文,可以用utools,直接复制进去,就可以清楚的看到json格式了,很方便~装json:
var json = {'json':{'json':{
'json':11
}
}
}
哈哈,所谓套娃,就是可以在值那里一直用json,所以想拿到1就需要通过:jsojsojsojson,就能取到11了,不过这只是一个演示,除非真的有这样的需求,要不然还是不要这么玩儿,他毕竟只是一个容器,以盛装数据并且简洁易懂为主~
为什么需要JSON?
等到去了公司做前后端分离的项目的时候,大家会发现前端与后端交互大部分都是接口,举个栗子,用户在浏览器输入了用户名和密码要登录,这个输入的用户名和密码肯定会发到后台,后台进行一系列的处理并且给前台反馈结果,画个就是这样的:总之前后端交互就是通过json报文,可以联想一下最开始学javaWeb的时候我们是怎么进行前后端交互的:
总结
大家可以看到,通过json,非常方便快捷地把一些复杂的对象和数据进行发送。每个公司肯定都对前端的ajax进行了封装,所以不需要每次都
$(document).ready(function(){
var saveDataAry=[];
var data1={'userName':'zhangsan','address':'bj'};
var data2={'userName':'lisi','address':'nj'};
saveDataAry.push(data1);
saveDataAry.push(data2);
$.ajax({
type:'POST',
url:'userInfo/userUpd',
dataType:'json',
contentType:'application/json',
data:JSON.stringify(saveData),
success:function(data){
... ...
}
});
});
使用起来也非常的方便~另外阿里巴巴有一个fastjson,可以非常快速地把json序列化和反序列化:
String text = JSON.toJSONString(obj); //序列化
VO vo = JSON.parseObject('{...}', VO.class); //反序列化
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点