JSON数据表示格式简介(JavaScript对象表示法)
[1] JSON简介
> JSON全称 JavaScript Object Notation
> 类似于JS中对象的创建的方法
> JSON和XML一样,都是一种表示数据的格式
> 但是JSON比XML的存储和解析性能要高的多,JSON要比XML高个30%左右。
<user>
<name>sunwukong</name>
<age>18</age>
<gender>男</gender>
</user>
{"name":"孙悟空","age":8,"gender":男}
[2] JSON的格式
> JSON字符串不方便阅读,但是传输性能好
> XML方便阅读,但是传输性能差
> JSON的格式和JS对象类型,但是要求属性名必须使用双引号。不能使用单引号,也不能不写引号!
> JSON对象中实际就是一组一组的键值对的结构,
键和值使用:连接,多个键值对之间使用,分开,注意如果是最后一组键值对,则千万不要在加,.
例如: {"属性名1":属性值1,"属性名2":属性值2,"属性名3":属性值3,"属性名4":属性值4}
> JSON运行属性值的类型:
1.字符串
2.数字
3.布尔
4.对象
5.数组
6.null
> 数组:
[属性1,属性2,属性3,属性4]
[3] JS中使用JSON
JSON对象 --> JSON字符串
JSON.stringify(对象)
JSON字符串 --> JSON对象
JSON.parse(JSON字符串)
[4] Java中使用JSON
> 目前Java中用的比较多的JSON解析工具:
json-lib --> 使用麻烦,解析性能最差
Jackson --> 使用较麻烦,解析性能最好
Gson --> 使用简单,解析性能中能
- Gson是谷歌出的一款JSON解析工具,使用简单,且性能较好。
Java对象 --> JSON字符串
//把map转化为json字符串
Map<String,String> map=new HashMap();
map.put("name", "张三");
map.put("hobby", "篮球");
map.put("genter", "男");
String str=gson.toJson(map);
JSON字符串 --> Java对象
Map<String,String> map2=gson.fromJson(str, Map.class);
System.out.println(map2);
[3].通过jQuery实现AJAX
> 使用get和getJSON都会有缓存问题,并且使用get方法不能传送较多的数据。
> post方法不会有缓存的问题,所以我们开发时使用post方法较多。
[1] post()方法
$.post(url, [data], [callback], [type])
参数:
url:发送AJAX的请求地址,字符串。
data:发送给服务器的请求参数,JSON格式。
callback:当前需要获取服务器发送的响应时,我们可以通过该回调函数。
jQuery会将响应信息以回调函数的参数的形式返回
type:响应信息的类型,字符串。一般两个常用值text、json
[2] get()方法
- get方法和post方法使用方式基本一致。
[3] getJSON()方法
getJSON(url, [data], [callback])
getJSON方法和get方法类似,只不过该方法默认的响应类型为JSON,不需要再手动指定。
[4]下面给出一个小例子:(本例子页面特别简单,只为了只实现这一个功能)
先导入jQuery所需要的jar包:
我将这个jar包导入了WebContent下的js文件夹在(js文件夹是自己建的)。
之后再jsp中引入jQuery
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.2.1.js">
</script>
然后就是jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.2.1.js">
</script>
<script type="text/javascript">
$(function(){
$("#btn").click(function(){
var url="${pageContext.request.contextPath}/Servlet1";
var json={"name":"zhangsan"};
function callback(data){ }
$.get(url,json,callback);
});
});
</script>
</head>
<body>
<button id="btn">确定</button>
</body>
</html>
这样后台就行接收到这个基于jQuery和json的get请求。
JSON数据表示格式简介(JavaScript对象表示法)的更多相关文章
- 8.7 JSON存储数据方式(JavaScript对象表示法)
8.7 JSON存储数据方式(JavaScript对象表示法) JSON JavaScript 对象表示法(JavaScript Object Notation) 是一种存储数据的方式. 一.创建JS ...
- JSON:JavaScript 对象表示法
JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. ...
- json格式的javascript对象用法分析
格式: objectName = { property1:value1, property2:value2, …, propertyN:valueN } property是对象的属性 ,val ...
- 遍历 JSON JavaScript 对象树中的所有节点
我想要遍历 JSON 对象树中,但为何找不到任何一间图书馆.这似乎是不难,但感觉就像重新发明轮子. 在 XML 中有很多教程演示如何遍历 XML DOM 树:( 解决方法 1: 如果你认为 jQuer ...
- JSON字符串和Javascript对象字面量
JSON字符串和Javascript对象字面量 JSON是基于Javascript语法的一个子集而创建的,特别是对象和数组字面量语法. 正是由于JSON的这种特殊来历,导致很多Javascript程序 ...
- JSON和JavaScript对象
var obj={width:100,height:200},这样的并不叫JSON,并且JSON只是一种数据格式,并不是具体的实例. 但很多人把这样的JS对象当成JSON,下面把这个问题讲清楚 一.J ...
- json数据的格式,JavaScript、jQuery读取json数据
JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON的特点: JSON 是纯文本 JSON 具有“自我描述性”(人类可读) JSON 具有层级 ...
- JSON对象与JavaScript对象的区别
//js对象的字面量表示法: var people1={ name:'hehe', age:18 }; //json的格式是: var people1={ "name":'hehe ...
- JS对象与json字符串格式
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
随机推荐
- 求从n个数组任意选取一个元素的所有组合
最近做项目碰到这个问题,如题从n个数组任意选取一个元素的所有组合.比如已知数组是[1, 3]; [2, 4]; [5]; 最后组合结果是[1, 2, 5]; [1, 4, 5]; [3, 2, 5] ...
- Opencv探索之路(十九):读写xml和yml文件
有时候我们处理完图像后需要保存一下数据到文件上,以供下一步的处理.一个比较广泛的需求场景就是:我们对一幅图像进行特征提取之后,需要把特征点信息保存到文件上,以供后面的机器学习分类操作.那么如果遇到这样 ...
- C++强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
1. c强制转换与c++强制转换 c语言强制类型转换主要用于基础的数据类型间的转换,语法为: (type-id)expression//转换格式1 type-id(expression)//转换格式2 ...
- PHP----SAPI
SAPI:Server Application Programming Interface 服务器端应用编程端口.它就是PHP与其它应用交互的接口,PHP脚本要执行有很多种方式,通过Web服务器,或者 ...
- docker~大叔对术语的解释
回到目录 接触和使用docker已经有1年多了,起初对概念本身理解的不是很好,或者说,没有找到一本比较好的书,在自己的研究下,对docker一些基本的概念有了自己的一些认识和看法,现在分享给正在学习d ...
- 玩玩微信公众号Java版之一:配置微信公众平台服务器信息
在进行微信公众平台开发前,前先做好准备工作,好了以后,我们可以开始啦! 第一.准备好服务端接口 定义一个http服务接口,主要分为如下几步: 1.创建一个servlet类,用来接收请求: ...
- 51nod_1265:四点共面(计算几何)
题目链接 设四点为a_0~3,若共面则 (a1a0*a2a0)·a3a0=0 #include<iostream> #include<cstdio> #include<c ...
- 7.spark共享变量
spark共享变量 1 Why Apache Spark 2 关于Apache Spark 3 如何安装Apache Spark 4 Apache Spark的工作原理 5 spark弹性分布式数据集 ...
- 一次花费了一两个小时的mysql问题排查
晚上把博客迁了个服务器,新建用户的时候遇到问题了. 关于mysql的问题. 前置操作 建了两个用户,一个laravel,一个blog用户以及他们的同名数据库. 建好之后,命令行下面连接mysql服务, ...
- vc++MFC开发上位机程序
用vc++MFC开发过不少跟单片机通讯的上位机程序了.搞懂了MFC架构,开发还是很快的,与底层单片机程序通讯,可以用串口.usb.网络.短信形式.串口现在用的越来越少了,一般电脑跟单片机在一块,使用串 ...