怎样利用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 (呵呵)
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; }