欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Json

程序员文章站 2022-03-24 11:29:48
...

回顾:
1.把学校系统的前端升级了,把小脚本和表达式给替换了.
2.老师修改学生信息的功能,复用学生修改个人信息页面,在Servlet中根据身份来确定是 学生还老师修改功能.
3.老师添加学生信息的功能,复用注册页面,在后台根据session用户信息来确定是谁的添 加.
4.Servlet整合:将原来一个请求对应一个Servlet进行整合,将项目划分为多个模块,一个 模块一个Servlet,这个模块中所有请求都提交对应模块的Servlet.
方法:在请求时作标记的方式来告知Servlet怎样处理请求.
4.1:Get提交作标记的方式
表单的get提交:在表单中用隐藏域作标记
除了表单以外的get提交:url后面将标记作为参数拼接提交
4.2:post提交作标记的方式:在表单中用隐藏域作标记;在url后面将标记作为参数拼接提交.

解决:
传标记,判断标记再作处理.

总结:
用setAttribute(key,value)存到四大范围中的值,取出时如果没值就是null;所有表单元素(文本框,密码框,隐藏域)如果value没值默认是"",不是null.

解决web项目后台的bug的方法
1.Web项目,判断是否缓存问题,明明后台代码已经更改,但是它还是执行没有修改之前的 代码就是缓存.
2.用代码调试:在认为有问题的地方用System.out.println()来打印变量或其他值.
3.debug调试:
3.1:在认为有问题的java为中的地方设置断点;
3.2:选中项目名->右键debug as->debug on server->调试运行
3.3:从浏览器可以从默认页面开始运行到调试功能的地方,也可以自己输入url运行 调试了问题的地方,通过F6下一步调试运行或F5跳到方法中去执行,观察变量窗 体找到出错的地方.

解决Web项目前台的bug的方法
1.alert()弹出消息调试
2.浏览器debug调试:
2.1:在浏览器要调试的页面上->右键检查(f12)->Sources->选中调试的页面->在认 为有问题的代码旁设置断点->重新刷新当前页面启动调试->在界面上输入值- 执行到调试功能时就进行调试地方(高亮显示)->f11(跳入方法中执行)/f10(一 步一步往下执行)->找到出错的代码解决->取消断点.

JSON

1.Json:
JavaScript object notation的简称,js对象简谱,js的本地对象.
语法:
Json对象:var jsObject={“属性名1”:“值1”,“属性名2”:“值2”,“属性名3”:“值3”…};
Json数组:var jsArray=[{“属性名1”:“值1”,“属性名2”:“值2”},{“属性名1”:“值1”,
“属性名2”:“值2”}…];

2.Json的作用:
它是一种轻量级数据交换格式.它可以用来前后台来传递数据.

3.Json解析:
fastjson-1.1.22.jar

3.1:简单Json字符串与Json对象和Java对象三者之间的相互转换

		eg:public static void main(String[] args) {
		//准备一个json字符串
		String s1="{'sname':'项超洋','sage':22}";
		
/*1.将普通Json字符串转换Json对象*/
		JSONObject jsOb1=JSON.parseObject(s1);
		//用json对象调用方法获得属性值
		System.out.println("1.姓名:"+jsOb1.getString("sname")+",年龄:"+jsOb1.getInteger("sage"));
		
/*2.将普通Json字符串转换Java对象,前提条件:java类中属性名与Json字符串属性名一一对应*/
		Student stu1=JSON.parseObject(s1, Student.class);
		System.out.println(stu1.toString());
		
/*3.将Json对象转换为Java对象,前提条件:java类中属性名与Json对象的属性名一一对应*/
		Student stu2=JSON.toJavaObject(jsOb1, Student.class);
		System.out.println(stu2);
		
/*4.将Java对象转换为Json对象*/
		JSONObject jsOb2=(JSONObject) JSON.toJSON(stu2);
		System.out.println("4.姓名:"+jsOb2.getString("sname")+",年龄:"+jsOb2.getInteger("sage"));
		
		//声明普通学生对象
		Student stu3=new Student();
		stu3.setSname("朱继发");
		stu3.setSage(20);
		//将java对象转换json对象,java对象有什么属性,转换json对象后,json对象就有与java对象对应的属性,这个属性是公有私有都可以.
		JSONObject jsOb3=(JSONObject) JSON.toJSON(stu3);
		System.out.println("5.姓名:"+jsOb3.getString("sname")+",年龄:"+jsOb3.getInteger("sage"));
		
		/*将Java对象和Json对象转换Json字符串*/
		String s2=JSON.toJSONString(jsOb3);
		System.out.println(s2);
	}

3.2:复杂Json字符串与Json对象和Java对象三者之间的相互转换

		eg:public static void main(String[] args) {
		//准备一个复杂json字符串
		String s1="{'stuName':'吴慧贤','stuAge':22,'classObject':{'cid':'1901','cname':'NZjavaee'}}";
		
/*1.将复杂的Json字符串转换Json对象*/
		JSONObject ob1=JSON.parseObject(s1);
		//用json对象调用方法得到属性
		System.out.println("1.姓名:"+ob1.getString("stuName")+",年龄:"+ob1.getInteger("stuAge"));
		//用json对象得到班级对象属性,
		JSONObject classOb1=ob1.getJSONObject("classObject");
		//又因为班级对象也是一个json对象,可以用班级对象调用它的属性
		System.out.println("班级编号:"+classOb1.getString("cid"));
		System.out.println("班级名称:"+classOb1.getString("cname"));
		
/*2.将复杂的Json字符串转换java对象,前提:json字符串中属性与java类中属性一一对应*/
		Student2 stu1=JSON.parseObject(s1, Student2.class);
		System.out.println(stu1.toString());
		
/*3.将json对象转换java对象,前提:json对象的属性与java对象属性要一一对应*/
		Student2 stu2=JSON.toJavaObject(ob1, Student2.class);
		System.out.println(stu2);
		
/*4.将java对象转换json对象*/
		JSONObject ob2=(JSONObject) JSON.toJSON(stu2);
		//用json对象调用方法得到属性
		System.out.println("2.姓名:"+ob2.getString("stuName")+",年龄:"+ob2.getInteger("stuAge"));
		//用json对象得到班级对象属性,
		JSONObject classOb2=ob2.getJSONObject("classObject");
		//又因为班级对象也是一个json对象,可以用班级对象调用它的属性
		System.out.println("班级编号:"+classOb2.getString("cid"));
		System.out.println("班级名称:"+classOb2.getString("cname"));
		
		/*5.将json对象和java对象转换Json字符串*/
		String s2=JSON.toJSONString(stu2);
		System.out.println(s2);
	}

3.3:Json数组字符串与Json数组和Java集合三者之间的相互转换

		eg:public static void main(String[] args) {
		//准备Json数组字符串
		String s1="[{'sname':'谢宇','sage':22},{'sname':'张煜','sage':30},{'sname':'高昂','sage':73}]";

/*1.将Json数组字符串转换Json数组*/
		JSONArray array1=JSON.parseArray(s1);
		//遍历Json数组
		for (int i = 0; i < array1.size(); i++) {
			//获得当前遍历json对象
			JSONObject ob1=array1.getJSONObject(i);
			//用对象调用属性输出
			System.out.println("1姓名:"+ob1.getString("sname")+",年龄:"+ob1.getInteger("sage"));
		}
		
/*2. 将Json数组字符串转换Java集合,前提:json数组中对象属性与java集合中每个对象的属性一一对应*/
		List<Student> stulist1=JSON.parseArray(s1, Student.class);
		for (Student stu : stulist1) {
			System.out.println(stu);
		}
		
/*3.将Java集合转换为Json数组*/
		JSONArray array2=(JSONArray) JSON.toJSON(stulist1);
		//遍历Json数组
		for (int i = 0; i < array2.size(); i++) {
			//获得当前遍历json对象
			JSONObject ob1=array2.getJSONObject(i);
			//用对象调用属性输出
			System.out.println("3姓名:"+ob1.getString("sname")+",年龄:"+ob1.getInteger("sage"));
		}
		
/*4.将Json数组转换java集合不能直接转换,只能间接转换,先Json数组转换为字符串,再将字符串转换为集合*/
		String s2=JSON.toJSONString(array2);
		List<Student> stulist2=JSON.parseArray(s2, Student.class);
		for (Student stu : stulist2) {
			System.out.println(stu);
		}
		
/*将Json数组或Java集合转换为Json数组字符串*/
		String s3=JSON.toJSONString(stulist2);
		System.out.println(s3);
	}