zl程序教程

您现在的位置是:首页 >  前端

当前栏目

nutz的json视图

JSONJSON 视图
2023-09-11 14:18:39 时间
2.3. json视图 
返回json视图有两种方法: 
@Ok("json")  与@Ok(“raw:json”) 
2.3.1. @Ok("json") 
(1) 如果入口函数返回的是字符串,则在这客户端得到的是json形式的字符串。客户端必须解析成json对象; 
  例: 
Java代码  收藏代码
  1. @Ok("json")  
  2.      public Map userlist( @Param("no")String no,  
  3.               @Param("name")String name,@Param("enable")boolean enable,  
  4.               @Param("page")Integer page,@Param("rows")Integer rowsCount,  
  5.              HttpServletRequest request,HttpServletResponse resp)  
  6.      {  
  7.      ……  
  8.      }  


(2) 如果入口函数返回类型是map,list,  java bean等,则直接返回的是json对象。 
客户端直接使用,无须再用eval之类的进行解析。可直接用于jqGrid等js组件。 
例: 
Java代码  收藏代码
  1.      @At("/power/admin/userlist_do")  
  2.      @Ok("json")  
  3.      public Map userlist( @Param("no")String no,  
  4.               @Param("name")String name,@Param("enable")boolean enable,  
  5.               @Param("page")Integer page,@Param("rows")Integer rowsCount,  
  6.              HttpServletRequest request,HttpServletResponse resp)  
  7.      {  
  8. //  要返回的json对象  
  9. //        {  
  10. //            "page":2,  
  11. //            "total":2,  
  12. //            "records":2,  
  13. //            "rows":[  
  14. //                {"no":"1","name":"aa" },  
  15. //                {"name":"bb" ,"no":"2"}  
  16. //            ]  
  17. //        }  
  18.         Map<Object, Object> map = new HashMap<Object, Object>();  
  19.         map.put("page", 2);  
  20.         map.put("total", 2);  
  21.         map.put("records", 2);  
  22.         List<Object> rows = new ArrayList();  
  23.         Map<Object, Object> map1 = new HashMap<Object, Object>();  
  24.         map1.put("no", "1");  
  25.         map1.put("name", "aa");  
  26.         rows.add(map1);  
  27.         map1 = new HashMap<Object, Object>();  
  28.         map1.put("no", "2");  
  29.         map1.put("name", "bb");  
  30.         rows.add(map1);  
  31.         map.put("rows", rows);  
  32.         return map;       
  33. }  


2.3.2. @Ok(“raw:json”) 
  入口函数返回的是字符串,但在客户端得到的是json对象。客户端直接使用,无须再用eval之类的进行解析。可直接用于jqGrid等js组件。 
例: 
Java代码  收藏代码
  1.      @At("/power/admin/userlist_do")  
  2.      @Ok("raw:json")  
  3.      public String userlist( @Param("no")String no,  
  4.               @Param("name")String name,@Param("enable")boolean enable,  
  5.               @Param("page")Integer page,@Param("rows")Integer rowsCount,  
  6.              HttpServletRequest request,HttpServletResponse resp)  
  7.      {  
  8. //  要返回的json对象  
  9. //        {  
  10. //            "page":2,  
  11. //            "total":2,  
  12. //            "records":2,  
  13. //            "rows":[  
  14. //                {"no":"1","name":"aa" },  
  15. //                {"name":"bb" ,"no":"2"}  
  16. //            ]  
  17. //        }  
  18.   
  19.   
  20.         String json =  "{ "+  
  21.                 "\"page\":2,"+  
  22.                 "\"total\":2,"+  
  23.                 "\"records\":2,"+  
  24.                 "\"rows\":["+  
  25.                     "{\"no\":\"1\",\"name\":\"aa\" },"+  
  26.                     "{\"name\":\"bb\" ,\"no\":\"2\"}"+  
  27.                 "]"+  
  28.            "}";  
  29.         return json;  
  30. }