- JSON程序类在进行数据的输出的时候里要回归了反射的机制实现了数据的加载
- 实现基础vo类的输出
package mao.shu.vo;
import java.io.Serializable;
public class Emp implements Serializable {
private Integer empno;
private String ename;
private String job;
public Integer getEmpno() {
return empno;
}
public void setEmpno(Integer empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
}
package mao.shu.jsondemo;
import mao.shu.vo.Emp;
import net.sf.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class json_demo4 {
public static void main(String[] args) {
int[] empno = new int[]{1,2,3};
String[] ename = new String[]{"SMITH","jack","luse"};
String[] job = new String[]{"maneager","employee","ceo"};
List<Emp> allEmp = new ArrayList<>();
for (int i = 0; i < empno.length; i++) {
Emp vo = new Emp();
vo.setEmpno(empno[i]);
vo.setEname(ename[i]);
vo.setJob(job[i]);
allEmp.add(vo);
}
JSONObject jsobj = new JSONObject();
jsobj.put("allEmp",allEmp);
System.out.println(jsobj);
}
}
{"allEmp":[{"empno":1,"ename":"SMITH","job":"maneager"},{"empno":2,"ename":"jack","job":"employee"},{"empno":3,"ename":"luse","job":"ceo"}]}
- 可以发现JSON处理之中可以自动的帮助用户实现相关的数据对象输出操作,但是这种自动的处理操作,只是根据类中的属性进行控制.
- 示例:现在对程序进修改,增加Dept类
package mao.shu.vo;
import java.io.Serializable;
import java.util.List;
public class Dept implements Serializable {
private Integer deptno;
private List<Emp> allEmp;
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
}
public List<Emp> getAllEmp() {
return allEmp;
}
public void setAllEmp(List<Emp> allEmp) {
this.allEmp = allEmp;
}
}
- JSON利用反射输出的时候考虑的方式非常的简单,只要有内容,请求内容不为空,就执行输出操作,并且整个过程都是利用反射完成的,同时自己增加了预警机制.
- 错误的使用
package mao.shu.jsondemo;
import mao.shu.vo.Dept;
import mao.shu.vo.Emp;
import net.sf.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class json_demo4 {
public static void main(String[] args) {
int[] empno = new int[]{1,2,3};
String[] ename = new String[]{"SMITH","jack","luse"};
String[] job = new String[]{"maneager","employee","ceo"};
Dept personnel = new Dept();
personnel.setDeptno(1001);
List<Emp> allEmp = new ArrayList<>();
for (int i = 0; i < empno.length; i++) {
Emp vo = new Emp();
vo.setEmpno(empno[i]);
vo.setEname(ename[i]);
vo.setJob(job[i]);
vo.setDept(personnel);
allEmp.add(vo);
}
personnel.setAllEmp(allEmp);
JSONObject jsobj = new JSONObject();
jsobj.put("allEmp",allEmp);
System.out.println(jsobj);
}
}
- 解决的方式也很简单,只要清除掉Dept和Emp之间的关系数据即可,但是清除关系之后又会显得不标准.
- 所以从整个的代码最终的观察来看,整个操作之中实际上自动处理b并不方便.