zoukankan      html  css  js  c++  java
  • 转!!JavaBean,List,Map转成json格式


    public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }

      

    注意!!进行转换的类一定要是public类型的,否则会报如下错误:.TemplateModelException: Method public java.lang.String org.apache.commons.lang.exception.NestableRuntimeException.getMessage(int) threw an exception when invoked on net.sf.json.JSONException: java.lang.NoSuchMethodException: Property 'contents' has no getter method in class 'class com.yesrj.plm2.workflow.action.WorkflowDesignAction$FlowViewNode'

    1 普通JavaBean(以User为例)转成json格式 

    1).转成JSONArray类型 
    User user = new User(); 
    user.setUsername("cxl"); 
    user.setPassword("1234"); 
    JSONArray json = JSONArray.fromObject(user); 
    System.out.println(json);//[{"password":"1234","username":"cxl"}] 
    response.getWriter().print(json.toString()); 
    在js文件取数据 
    $.getJSON("http://localhost:8080/jQueryDemo/servlet/UserServlet",null,function(data) { 
          alert(data[0].username); 
          alert(data[0].password); 
    }); 


    2).转成JSONObject类型 
    JSONObject jsonObj = JSONObject.fromObject(user); 
    System.out.println(jsonObj);//{"password":"1234","username":"cxl"} 
    response.getWriter().print(jsonObj); 
    在js文件取数据 
    alert(data.username); 
    alert(data.password); 


    2 List转成json格式 


    List<User> users = new ArrayList<User>(); 
    User user = new User(); 
    user.setUsername("cxl"); 
    user.setPassword("1234"); 
    User u = new User(); 
    u.setUsername("lhl"); 
    u.setPassword("1234"); 
    users.add(user); 
    users.add(u); 


    1).转成JSONArray类型 
    JSONArray json = JSONArray.fromObject(users); 
    System.out.println(json.toString()); 
    //[{"password":"1234","username":"cxl"},{"password":"1234","username":"lhl"}] 
    response.getWriter().print(json.toString()); 
    js中取数据:alert(alert(data[0].username)); 


    2).转成JSONObject类型 
    不可直接使用JSONObject jsonObj = JSONObject.fromObject(users); 
    可通过下列方式 
    JSONObject jsonObj = new JSONObject(); 
    jsonObj.put("users", users); 
    jsonObj.put("u", u); 
    System.out.println(jsonObj); 
    {"users":[{"password":"1234","username":"cxl"},{"password":"1234","username":"lhl"}], 
      "u":{"password":"1234","username":"lhl"}} 
    response.getWriter().print(jsonObj); 
    js中取数据:alert(data.users[0].username); 
               alert(data.u[0].username); 


    3.Map转成json格式 


    Map<String,Object> map = new HashMap<String,Object>(); 
    map.put("users", users); 
    map.put("u", u); 
    1).转成JSONArray类型 
    JSONArray json = JSONArray.fromObject(map); 
    System.out.println(json.toString());// 
    [{"users":[{"password":"1234","username":"cxl"},{"password":"1234","username":"lhl"}],"u":{"password":"1234","username":"lhl"}}] 
    response.getWriter().print(json.toString); 
    js中取数据:alert(data[0].users[0].username); 


    2).转成JSONObject类型 
    JSONObject json = JSONObject.fromObject(map); 
    System.out.println(json);// 
    {"user":[{"password":"1234","username":"cxl"},{"password":"1234","username":"lhl"}],"u":{"password":"1234","username":"lhl"}} 
    response.getWriter().print(json); 
    js中取数据:alert(data.user[0].username); 

  • 相关阅读:
    stream流
    python笔记:str.contains小坑之 UserWarning To actually get the groups, use str.extract.
    获取excel的行索引值
    Pandas学习(4、数据载入、存储及文件格式
    python中如何压缩和解压缩文件
    保持服务器屏幕可控制状态
    python判断文件和文件夹是否存在、创建文件夹
    PDF处理
    selenium+python配置chrome浏览器的选项
    python实现复制粘贴
  • 原文地址:https://www.cnblogs.com/wuyun-blog/p/5752583.html
Copyright © 2011-2022 走看看