ssh使用ajax异步通讯. json与对象转换的几个小问题
首先是hibernate,用ssh做项目的时候,使用hibernate,这个hibernate博大精深,至今只懂皮毛。建对象时候使用它的一对多,多对多联系,。
这样子,对象转json的时候会产生循环依赖的现象,例如,学生与兴趣多对多联系,把学生对象转成json字符串的时候会把学生所对应兴趣转成字符串,但兴趣本生又是一个对象,这样做会遇到很多问题,可能转换不成功,可能产生循环依赖。
有一种方法可以解决这个问题,。使用谷歌的GSON包,使用方法就是,在定义对象的时候加上,
@Expose
private String xh;//学生表某字段
@Expose
private Set xingqu;// 使用set,多对多联系兴趣表
使用@Expose,好处就是,转字符串的时候只转@Expose下面的字段。
这是定义。在转字符串的时候
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
String student = gson.toJson(studentdetails);
这样就构造好了字符串,可以传到前端去了。
另外,js中把字符串转成对象的方法:var student = eval("("+data+")");