补上昨天上的内容,个人觉得AJAX和JSON还是比较重要的。
简单用几句话来总结一下AJAX和JSON
AJAX是一种异步的技术,可以实现异步刷新,提高用户体检,降低资源消耗等等
JSON是一种数据的存储格式
AJAX是在脚本中写的,JSON一般都是用于将数据或者对象转为JSON类型的
AJAX
个人还是不太喜欢用枯燥的语言来介绍他们的使用,具体的还是在代码中体现吧
原生的AJAX这里就不多说了,比较麻烦,直接介绍jquery的Ajax
//jquey的AJAX的get请求(post请求直接将get换成post就好啦)
<script type="text/javascript">
//文本框失去焦点,访问服务器,判断用户名是否存在
$("#user").blur(function () {
//得到文本框中值
var user = $(this).val();
//调用jquery的$.get方法:url(请求地址),data(发送给服务器端的请求参数),callback(回调函数),type(返回的数据类型)
$.get("/ajaxDemoServlet",{user:user}, function (result) {
//回调函数的参数就是服务器返回的数据
$("#info").text(result);
});
});
</script>
//jquery的AJAX的ajax请求(用的还是比较少的,参数比较多,比较麻烦)
<script type="text/javascript">
//文本框失去焦点,访问服务器,判断用户名是否存在
$("#user").blur(function () {
//得到文本框中值
var userName = $(this).val();
$.ajax({
url:"/ajaxDemoServlet",
data:{"userName":userName,"age":4},
async:true,//是否异步
type:"GET",//请求方式
dataType:"text",
success:function (result) {
//处理正常的响应
$("#info").text(result);
},
error:function (errorRes) {
alert("出现异常了")
}
})
});
</script>
JSON
从json中取数据
<script type="text/javascript">
//解析json对象
// 创建一个person对象的JSON对象,属性名:firstname、lastname、age给三个属性赋值
var person = {
firstname: "悟空",
lastname: "孙",
age: 26
};
//输出数据
document.write("姓:" + person.lastname + ",名:" + person.firstname + ",年龄:" + person.age + "<br/>");
</script>
<script>
//解析json数组格式
//JSON数组格式
var arr = ['hello', 1, true];
//解析数据
for (var i = 0; i < arr.length; i++) {
var obj = arr[i];
document.write(obj+" ");
}
</script>
<script type="text/javascript">
//解析json混合类型
//1. 创建一个数组,包含三个JSON对象
var arr = [{
firstname: "悟空",
lastname: "孙",
age: 26
}, {
firstname: "八戒",
lastname: "猪",
age: 24
}, {
firstname: "吴京",
lastname: "沙",
age: 22
}];
//2. 每个JSON对象都有三个属性:firstname、lastname、age。给每个对象的属性赋不同的值
for (var person of arr) {
//3. 遍历输出每个JSON对象的属性值
document.write("姓:" + person.lastname + ",名:" + person.firstname + ",年龄:" + person.age + "<br/>");
}
</script>
将java对象转换为json格式(重点!!!)
public class JacksonTest {
public static void main(String[] args) throws JsonProcessingException {
//创建User对象
User user = new User(100,"张三", 25);
//创建对象
ObjectMapper mapper = new ObjectMapper();
//调用方法
String userJson = mapper.writeValueAsString(user);
System.out.println("userJson = " + userJson);
//创建一个字符串的数组
String[] names = {"张三","李四","王五"};
String arrJson = mapper.writeValueAsString(names);
System.out.println("arrJson = " + arrJson);
//创建一个List集合
List<User> users = new ArrayList<>();
users.add(new User(1,"孙悟空", 25));
users.add(new User(2,"猪八戒", 23));
users.add(new User(3,"白骨精", 20));
String usersJson = mapper.writeValueAsString(users);
System.out.println("usersJson = " + usersJson);
//创建一个Map对象
Map<String, User> map = new HashMap<>();
map.put("user", new User(1,"孙悟空", 25));
String mapJson = mapper.writeValueAsString(map);
System.out.println("mapJson = " + mapJson);
}
}