JSONArray.fromObject(map)问题

最近写个小东西,需要用到Jqgrid,Jqgrid需要固定格式
String modelHql = this.createHql("student");
List list = Student.findList(modelHql,pageInfo);//立即查数据库
要生成的模型为:
map.put("page", page);
map.put("total", total);
map.put("rows", list);
map.put("records", recordNum);
这个list其实是
list.add(map)
这个map是一条记录里边的字段和相应的值,这样这个1个list对应多个map
我是这样写的
private static Map reflectObject(Map m,Object o,Map loopMap) throws Exception{

    Object value = null;
    Method method = null;
    Object records[] = null;
    PersistentSet p = null;
    Class clazz = o.getClass();

    //拿到所有字段并遍历
    Field[] fields = clazz.getDeclaredFields();
    for(Field f:fields){
        //得到字段对应方法
        method = clazz.getMethod(getMethodName(f),new Class[]{} );
        //得到对应方法值
        value = method.invoke(o);

        m.put(f.getName(), value);
    }  
    return m;
}

我的POJO @ManyToMany(fetch=FetchType.EAGER,cascade={CascadeType.ALL})是JOIN连接,因为student里边有个teacher对象,虽然这个对象已经被查出来了,但是却是个PersistentSet,我不能通过反射拿到值 ,因为他是个对象 ,所以用 JSONArray json = JSONArray.fromObject(map);直接就异常了,我想实现的是可以把这个teacher也可以查出来并转化成JSON。哪位大哥可以实现!!!!

你认为那样设计合理吗?

可以使用JsonConfig设置不转换属性,分开将teacher转化为json再加入student
JsonConfig config = new JsonConfig();
config.setExcludes(new String[] {"teacher"});

JSONObject jobject = JSONObject.fromObject(student, config);
jobject.element("teacher", teacherjson);

你好,不知道楼主最后采用何种方法解决该问题?我也遇到了这个问题。非常谢谢