`
zy116494718
  • 浏览: 470177 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

后台json传递

    博客分类:
  • Java
阅读更多

json除了可以用于前台传递,还可用于后台之间传递。它可以传递List,Map,Bean等类型的数据。

例如:

		  User u1=new User();
		  u1.setUsername("zy");
		  u1.setPassword("123");
		  User u2=new User();
		  u2.setUsername("msl");
		  u2.setPassword("456"); 
		  List list = new ArrayList();  //把两个对象放进list中
		  list.add(u1); 
		  list.add(u2);     
          
		  JSONArray jsonArray = JSONArray.fromObject( list );     //把list放进json数组
	      Map map = new HashMap();
	      map.put("message", "111");  
	      map.put("users", jsonArray);   //把json数组做为一个值放进Map中
		  JSONObject jsonObject = JSONObject.fromObject(map);   //把map放进json对象中
		  PrintWriter out = response.getWriter();
		  out.print(jsonObject);  // 传递json

 

      传递的json格式为: {"message":"111","users":[{"password":"123","username":"zy"},{"password":"456","username":"msl"}]}

 

 

         在接收端的java文件中取:

 

         returnJson是从输入流中得到的json格式的字符串。输出为:

       {"message":"111","users":[{"password":"123","username":"zy"},   {"password":"456","username":"msl"}]}

 

 

			if(returnJson != null && returnJson != ""){
				 
			String strJson = returnJson.replace("?(", "").replace(")", "").replace(";", "");
				 
			if(strJson.startsWith("{")){
				 
			JSONObject jsonObject = JSONObject.fromObject(strJson);
		        JSONArray jsonArray = JSONArray.fromObject(jsonObject.get("users"));
				 			 
		     for (int i = 0, len = jsonArray.size(); i < len; i++) {
	 
				JSONObject jsonUser = jsonArray.getJSONObject(i);
				User vo = (User)JSONObject.toBean(jsonUser, User.class);
				System.out.println(vo.getUsername()+":"+vo.getPassword());
               }
 
             }				 
          }

 

          ps: 在这里通过toBean的方法把json对象转换成了java对象。

4
2
分享到:
评论
3 楼 zy116494718 2012-06-29  
wenshao 写道
建议你用fastjson 

那个没用过啊,有空可以试试~
2 楼 wenshao 2012-06-29  
建议你用fastjson 
1 楼 yaya_wiscom 2012-06-21  
不错,,蛮实用的!

相关推荐

Global site tag (gtag.js) - Google Analytics