日期:2014-05-18  浏览次数:20740 次

怎样利用java生成json复杂对象?
我需要在后台生成json对象,用ajax把json对象返回页面,赋值给var file,具体结果如下所示。
这个复杂的结构怎样才可以生成?
var file = [{
'id':1238662,
'name':'name1',
'stats':{
'fileCount':33,
'fileSize':46134095}},
{
'id':1238663,
'name':'name2',
'stats':{
'fileCount':3,
'fileSize':9449462}},
{
'id':1238668,
'name':'name3',
'stats':{
'fileCount':5,
'fileSize':30421111}}];

------解决方案--------------------
//
// public static void main(String[] args){
// List list = new ArrayList();
// Map m1 = new HashMap();
// m1.put("text", 1);
// m1.put("state", 1);
// list.add(m1);
// Map m2 = new HashMap();
// m2.put("text", 2);
// m2.put("state", 2);
// list.add(m2);
// Map dataMap = new LinkedHashMap();
// dataMap.put("result", list);
// System.out.println(JsonUtil.encode(dataMap));
//
// }


 随便写了下 参考下 希望对你有帮助
------解决方案--------------------
依上题 可以判断你的后台应当差性能出一个列表,下面我给你个例子,ssh1 的

假设方法名:getlist (呵呵)
Java code

public ActionForward getList(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){
        PrintWriter out = null;
        String realname=null;
        Integer pageno = Common.PAGE_PAGENO;
        Integer pagesize = Common.PAGE_SIZE;
        JSONObject json = new JSONObject();
        
        List<Users> list = new ArrayList<Users>(); // 不知道你的list 取的是什么,暂且为用户list 吧
        List<Map<String,Object>> list_user = new ArrayList<Map<String,Object>>();
        PageModel user_page = new PageModel();
        list = .......;//这里调用你的方法得到list
        
        if(!list.isEmpty()){ // 对list进行简单的判断
            for(Users _user:list){
                Map _map = new HashMaps();//这里可能会提示让你加泛型,不用鸟
                Map<String,Object> tmp_map = new HashMap<String,Object>();//这个是放那json结构里面的那个小结构的'stats'
                _map.put("id", _user.getId());
                _map.put("name", _user.getName());
                tmp_map.put("fileCount",_user.getFiles().getFileCount())
                tmp_map.put("fileSize", _user.getFiles.getFilesize());
                _map.put("stats",tmp_map);
                list_user.add(_map);
            }
        }
        try{
            json.put("users_", list_user);
            json.put("totalPages", user_page.getTotalPages());
            json.put("_size", user_page.getPageSize());
            json.put("_pno", user_page.getPageNo());
            json.put("_trs", user_page.getTotalRecords());
        }catch(Exception e){
            this.log.error("User JSON Error:"+e.getMessage());
        }
        out.write(json.toString());
        out.flush();
        out.close();
        return null;
    }