标签:同步请求 中文 数据类型 log 遍历 转换 gif prot query
JSON
JSON?
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析与生成
- JSON采用完全独立于语言的文本格式,并且很多语言都支持json(C,C++,C#,Java,JavaScript...)
- JSON的格式就是key:value形式,类似于map集合
JSON在JavaScript中的使用
JSON的定义
JSON的访问
分别输出上面中的json对象中的属性值
JSON的两个常用方法
json的两种形式:
- 一种以对象的形式存在,称为json对象;
- 一种以字符串的形式存在,称为json字符串;
JSON.stringify() 把json 对象转换成为json 字符串
JSON.parse() 把json 字符串转换成为json 对象
JSON在java中的使用
gson-2.2.4.jar包方式
json字符串与JavaBan对象之间的转换
@Test
public void test01(){
//普通的一个JavaBan对象
Person person = new Person("张三",18,"男",178.5);
//Gson对象,可以将java对象与json互转的对象
Gson gson = new Gson();
//将JavaBan对象转化为json字符串
String personJson = gson.toJson(person);
System.out.println(person);//Person{name=‘张三‘, age=18, sex=‘男‘, height=178.5}
System.out.println(personJson);//{"name":"张三","age":18,"sex":"男","height":178.5}
//将json字符串转换为JavaBan对象
Person person1 = gson.fromJson(personJson, Person.class);
System.out.println(person1);//Person{name=‘张三‘, age=18, sex=‘男‘, height=178.5}
}
json字符串与List集合之间的转换
public void test02() {
//一个普通的集合,里面装着普通的Java对象
List list = new ArrayList();
list.add(new Person("张三", 18, "男", 178.5));
list.add(new Person("李四", 28, "女", 278.5));
list.add(new Person("王五", 38, "男", 378.5));
//创建Gson对象
Gson gson = new Gson();
//将list集合转换为json字符中,
String listJson = gson.toJson(list);
System.out.println(listJson);
/*[{"name":"张三","age":18,"sex":"男","height":178.5},
{"name":"李四","age":28,"sex":"女","height":278.5},
{"name":"王五","age":38,"sex":"男","height":378.5}]*/
//将json字符串转换为List集合,后面的参数是一个匿名类,这是第一种方法
// List jsonList = gson.fromJson(listJson, new TypeToken>() {}.getType());
//第二种方法:创建一个类,继承TypeToken类,它的泛型里面就是要转换的集合
//public class JsonList extends TypeToken> {}
List jsonList = gson.fromJson(listJson, new JsonList().getType());
for (Person person : jsonList) {
System.out.println(person);
/*Person{name=‘张三‘, age=18, sex=‘男‘, height=178.5}
Person{name=‘李四‘, age=28, sex=‘女‘, height=278.5}
Person{name=‘王五‘, age=38, sex=‘男‘, height=378.5}*/
}
}
json字符串与map集合之间的转换
@Test
public void test03() {
//一个普通的集合,里面装着普通的Java对象
Map map = new HashMap();
map.put("小三",new Person("张三", 18, "男", 178.5));
map.put("小四",new Person("李四", 28, "女", 278.5));
map.put("小五",new Person("王五", 38, "男", 378.5));
Gson gson = new Gson();
//map集合转换为json字符串
String mapJson = gson.toJson(map);
System.out.println(mapJson);
/*{"小三":{"name":"张三","age":18,"sex":"男","height":178.5},
"小四":{"name":"李四","age":28,"sex":"女","height":278.5},
"小五":{"name":"王五","age":38,"sex":"男","height":378.5}}*/
//json字符串转换为Map
Map jsonMap = gson.fromJson(mapJson, new TypeToken
fastjson-1.1.24.jar包的方式
@Test
public void test04() {
//一个普通的集合,里面装着普通的Java对象
List list = new ArrayList();
list.add(new Person("张三", 18, "男", 178.5));
list.add(new Person("李四", 28, "女", 278.5));
list.add(new Person("王五", 38, "男", 378.5));
//将list集合转换为json字符串
String listJson = JSON.toJSON(list).toString();
System.out.println(listJson);
//将json字符串转换为List对List集合
List JsonList = JSON.parseArray(listJson, Person.class);
for (Person person : JsonList) {
System.out.println(person);
}
}
@Test
public void test05() {
//一个普通的集合,里面装着普通的Java对象
Map map = new HashMap();
map.put("小三",new Person("张三", 18, "男", 178.5));
map.put("小四",new Person("李四", 28, "女", 278.5));
map.put("小五",new Person("王五", 38, "男", 378.5));
//将Map集合转换为json字符串
Object mapJson = JSON.toJSON(map);
System.out.println(mapJson);
String mapJsonString = mapJson.toString();
// 将json字符串转换为Map集合,JSON中没有直接对map集合转换的方法,需要下面这种匿名类的方式
Map jsonMap = JSON.parseObject(mapJsonString, new TypeReference
AJAX
什么是AJAX?
- Ajax 即“Asynchronous* Javascript And* XML”(异步 JavaScript 和 XML)
- 是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页(局部更新页面)的技术
- 浏览器地址栏不会发生变化
- 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新
原生AJAX
html
Servlet程序
@WebServlet("/ajaxServlet")
public class AjaxServlet extends BaseDAO {
protected void javaSciptAjax(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Person person = new Person("张三",18,"男",188.2);
//将Java对象昂转换为json字符串
String personJson = JSON.toJSON(person).toString();
//响应
response.getWriter().write(personJson);
}
}
jQuery中的AJAX
属性介绍:
- url:表示请求的地址
- type: 表示请求的方式,是GET还是POST
- data: 发送给服务器的数据 就是?后面连着的,有两种格式
- key=value&key=value
- {key:value} 多个使用逗号隔开
- success:请求成功后,响应的回调函数
- dataType : 响应的数据类型
- text【纯文本】xml【xml数据】 json【json对象】
ajax方法
protected void jQueryAjax(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Person person = new Person("李四", 28, "女", 278.5);
//将Java对象昂转换为json字符串
String personJson = JSON.toJSON(person).toString();
//响应
response.getWriter().write(personJson);
}
get()、post()方法
四个参数:
- 请求的地址
- 请求参数
- 响应回调函数
- 响应的数据类型
getJSON()方法
- 比get()、post()方法两个方法少一个参数,就是响应的数据类型
- 默认就是响应的json格式专用方法
serialize()方法-表单序列化
- 这个方法可以将form表单中要提交的属性提取出来转换为key=value&key=value形式
它默认会把中文转换为%E形式的数据
JSON与AJAX
标签:同步请求 中文 数据类型 log 遍历 转换 gif prot query
原文地址:https://www.cnblogs.com/MLYR/p/14406812.html