JSONArray转List<HashMap<String,String>>页面取值

前端之家收集整理的这篇文章主要介绍了JSONArray转List<HashMap<String,String>>页面取值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这是简单的单个键值方式的,本文是一组2*2的4张图片展示存在数据库的jsonarray格式取出在页面展示的示例:

1.publicutil类

  1. public class PublicUtil {
  2. /**
  3. * jsonArray转List<HashMap<String,String>>
  4. * @param json格式字符串;
  5. * */
  6. //jsonArray格式
  7. /**
  8. [ {"pic":"http://address4","order":"4"},{"pic":"http://address3","order":"3"},{"pic":"http://address2","order":"2"},{"pic":"http://address1","order":"1"}]
  9. */
  10. public static List<HashMap<String,String>> getPics(String pics) {
  11. List<HashMap<String,String>>res = new ArrayList<HashMap<String,String>>();
  12. if(pics==null||pics.equals("")||!pics.startsWith("[")||!pics.endsWith("]")){
  13. return res;
  14. }
  15. JSONArray jsons = JSONArray.fromObject(pics);
  16. JSONObject json = null;
  17. HashMap<String,String>map = null;
  18. String pic = null;
  19. String order = null;
  20. for(int i=0;i<jsons.size();i++){
  21. json = jsons.getJSONObject(i);
  22. pic = json.getString("pic");
  23. order = json.getString("order");
  24. if(pic!=null&&!"".equals(pic)&&order!=null&&!"".equals(order)){
  25. map = new HashMap<String,String>();
  26. map.put("order",order);
  27. map.put("pic",pic.indexOf(".jpg")!=-1?pic:pic+".jpg");
  28. res.add(map);
  29. }
  30. }
  31. //给获取的list按照order字段排序
  32. Collections.sort(res,new Comparator<HashMap<String,String>>() {
  33. @Override
  34. public int compare(HashMap<String,String> o1,HashMap<String,String> o2) {
  35. int order1 = Integer.parseInt(o1.get("order"));
  36. int order2 = Integer.parseInt(o2.get("order"));
  37. System.out.println(order1<order2);
  38. if (order1<order2) {
  39. return -1;
  40. }else{
  41. return 0;
  42. }
  43. }
  44. });
  45. return res;
  46. }
  47. } @H_404_17@

  48. 2.Controller

  49. @Controller
  50. public class UserController {
  51. 	@RequestMapping("add")
  52. 	public ModelAndView addInfo(HttpServletRequest reqeust,HttpServletResponse response){
  53. 		ModelAndView res=new ModelAndView("add");
  54. 		res.addObject("name","塔睿");
  55. 		//json开始,示例
  56. 		String rels="[{\"pic\":\"地址1\""
  57. 				+ ",\"order\":\"9\"},{\"pic\":\"地址2\""
  58. 				+ ",\"order\":\"8\"},{\"pic\":\"地址3\",\"order\":\"7\"}]";
  59. 		List<HashMap<String,String>> list= PublicUtil.getPics(rels);
  60. 		res.addObject("list",list);
  61. 		//json结束
  62. 		//c:forTokens开始
  63. 		String tags="a~b~c~d~~e";
  64. 		res.addObject("tags",tags);
  65. 		//c:forTokens结束
  66. 		return res;		
  67. 	}
  68. 	/*
  69. 	 * 可以使用如下方法收集数据并生成相应的JSON字符串
  70. 	 */
  71. 	@RequestMapping("one")
  72. 	public void firstOne(){
  73. 		//声明一个hash对象并添加数据
  74. 		Map params=new HashMap();
  75. 		params.put("name","名称1");
  76. 		params.put("age","12");
  77. 		/*params.put("name","名称2");
  78. 		params.put("age","13");*/
  79. 		//JSONArray检查对象类型调用正确的工厂方法
  80. 		//声明JSONArray对象并输入json字符串
  81. 		JSONArray array=JSONArray.fromObject(params);
  82. 		//输出	[{"age":"12","name":"名称1"}]
  83. 		System.out.println(array.toString());
  84. 	}
  85. }@H_404_17@ 
  86.  
  87. 3.jsp页面

  88. <%@ page language="java" import="java.util.Map" contentType="text/html; charset=UTF-8"
  89.     pageEncoding="UTF-8"%>
  90. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  91. <%
  92. String path = request.getContextPath();
  93. String basePath = request.getScheme() + "://"
  94. + request.getServerName() + ":" + request.getServerPort()
  95. + path + "/";
  96. Map<String,String> menus=(Map<String,String>)request.getAttribute("menus");
  97. %>
  98. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  99. <html>
  100. <head>
  101. <Meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  102. <title>Insert title here</title>
  103. <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.min.js"></script>
  104. <link href="http://libs.baidu.com/bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet">
  105. <script src="http://libs.baidu.com/bootstrap/2.3.2/js/bootstrap.min.js"></script>
  106. </head>
  107. <body>
  108. 	<form>
  109. 		获取:<input type="text" name="name" value="${name }"/><br/>
  110. 		<!-- c:foreach遍历List<HashMap<String,String>> -->
  111. 		<c:forEach items="${list }" var="lists">
  112. 			<span>${lists.order }</span>
  113. 			<input type="text" value="${lists.pic }"/><br/>
  114. 		</c:forEach>
  115. 		<!-- c:forTokens用法delims按照这个进行分割,循环的次数也由‘~’个数决定 -->
  116. 		<c:forTokens items="${tags }" delims="~" var="tag">
  117. 			<input type="text" value="${tag }"/><br/>
  118. 		</c:forTokens>
  119. 	</form>
  120. </body>
  121. </html>@H_404_17@

猜你在找的Json相关文章