10分钟让你明白JSON是什么
10分钟让你明白JSON是什么
嗨,哥们儿传JSON数据啊,你传的什么鬼?不懂JSON吗?别说你没听过JSON数据哈。今天你被心灵深处的一个闹铃闹醒,心想:这该死的JSON究竟是个什么东西?为什么突然间到处都是它了!
JSON是什么?
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
JSON的实际内核就是字符串,而且JSON在每一种开发语言都有自己的解析和开发机制。
JSON的优势是什么?
1、 轻量级
2、 易于阅读
3、 占用服务资源少
4、 支持各种语言
JSON的数据格式
JSON数据格式:主要由对象 { } 和数组 [ ] 组成:
1、 JSON 对象语法
var myObj = { "name":"yy", "age":28, "like":null }
访问对象值:
使用点号(.)来访问对象的值myObj.name
使用中括号([])来访问对象的值myObj["name"];
2、嵌套 JSON 对象
var myObj = {
"name":" yy ",
" age ":28,
" likes": {
"like1":"kanshu",
"like2":"xiezi",
"like3":"zhibo"
}
}
使用点号(.)或者中括号([])来访问嵌套的 JSON 对象myObj. likes.like1; 或 myObj. likes ["like1"];
3、数组作为 JSON 对象
var myArr = [ "yy", "zdk", "28" ]
访问数组值:使用中括号([])来访问数组的值myArr [0];
4、JSON 对象中的数组
var myArr = {
"name":"zdk",
"age":28,
"likes":[
"kanshu",
"lanqiu",
"Taobao"
]
}
使用索引值来访问数组:myArr. likes[0];
注意:JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
前台将封装的JSON数据传给后端
1.前台对象数据:
var params = {
"userName":userName,
"userPwd":userPwd
};
//对象直接传默认序列化
1.1 后端对象接收:
BufferedReader bufferedReader = request.getReader();
String json = bufferedReader.readLine();
Users users = JSON.parseObject(json,Users.class);
//将前端发过来的json字符串转
2.前台数组数据:
var params = [userName,userPwd];
//转成JSON字符串 JSON.stringify(params)
2.1 后端数组接收:
BufferedReader bufferedReader = request.getReader();
String json = bufferedReader.readLine();
JSONArray array = JSON.parseArray(json);
System.out.println(array.get(1));
//如果多条数组还可以:
List
userList = JSON.parseArray(json, Users.class); 后端将封装的JSON数据传给前台
3.后端数据封装:
response.setContentType("application/json;charset=utf8");
response.getWriter().write("{\"userName\":\"zhangsan\",\"userPwd\":123}");
response.getWriter().write(JSON.toJSONString(user));
response.getWriter().write(JSON.toJSONString(list中放实体对象));
response.getWriter().write(JSON.toJSONString(list中放实体对象(还可以嵌套)));
3.1 前台接收后台数据:
console.log(JSON.parse(responseResult)); //json转对象前提是dataType不写json
console.log(JSON.stringify(responseResult)); //json转对字符串
$.each(responseResult.list,function (index,item) {
console.log(item.userName);
console.log(item.userPwd);
})
结尾:如上属于Gson和FastJson都是最常用的方法,本文章里面用到的API也是最常用的API,基本开发都够用了,其余未涉及到的请自行查看源码学习吧。如果觉得丫丫分享的还不错,请点击关注。谢谢!
-
- 《巨人》终季三笠形象大变,引起无数网友跟风玩梗,还我三笠女神
-
2023-12-13 01:14:23
-
- 水电工入行有前景吗?晒晒30过后做水电工的收入
-
2023-12-13 01:11:53
-
- 史上最美林黛玉(多图)
-
2023-12-13 01:09:23
-
- 日本偶像现役最强学霸!AKB48迎来首位硕士-武藤十梦
-
2023-12-13 01:06:52
-
- 偏心婆婆算盘落空:年轻时帮小儿媳带大俩孙,晚年再让大儿媳养老
-
2023-12-13 01:04:22
-
- 冷知识大全 - 你意想不到的知识都在这里
-
2023-12-13 01:01:52
-
- 椿象也叫臭屁虫,荔枝椿象听着就不一般,从小到大变化差异大
-
2023-12-13 00:59:22
-
- 《复联4》的那些隐藏彩蛋你知道几个?
-
2023-12-13 00:56:52
-
- 《穿书》穷?“女主团”颜值爆表,难怪师尊妒忌,冰哥太有福
-
2023-12-13 00:54:22
-
- 香港兰桂坊跨年踩人惨剧
-
2023-12-13 00:51:52
-
- 全面普及十二年义务教育?教育部回应不属实,不过这些地方试行了
-
2023-12-13 00:49:22
-
- 海贼王:官方公布一波生命卡,罗杰的刀,马尔科的赏金都出来了
-
2023-12-13 00:46:51
-
- 「人物」陈康被外媒报道:或将成为下一个腿王?
-
2023-12-13 00:44:21
-
- 英雄联盟s10全球总决赛赛程规则讲解,助你快速了解全程规则
-
2023-12-13 00:41:52
-
- 挖煤工暹罗猫是种怎样的猫咪?出身贵族,猫中二哈,你值得拥有
-
2023-12-13 00:39:21
-
- 如何判断你正在长智齿,每颗都要拔掉吗?
-
2023-12-13 00:36:51
-
- 梦幻西游:刷帮贡的四种常规的方式,省钱的任务肯定要浪费时间
-
2023-12-13 00:34:21
-
- 贾不假?姑苏城外寒山寺,白玉为堂金做马
-
2023-12-13 00:31:51
-
- 火灾防控科普知识消防安全知识科普
-
2023-12-13 00:29:21
-
- 166cm的周洁琼跟符龙飞一样高?看清脚上的鞋子,瞬间就明白了
-
2023-12-13 00:26:51