?
?
一、Java Action关键代码一:
?
String jsonStr = JsonTool.list2Json(list); response.setContentType("text/html; charset=GBK"); response.getWriter().write(jsonStr); return null;?
?
?
二、JsonTool.java
?
?
package com.comba.omc.web.tool; import java.sql.Timestamp; import java.util.List; import java.util.Map; import java.util.Set; public class JsonTool { public static String string2Json(String s) { StringBuilder sb = new StringBuilder(s.length()+20); sb.append('\"'); for (int i=0; i<s.length(); i++) { char c = s.charAt(i); switch (c) { case '\"': sb.append("\\\""); break; case '\\': sb.append("\\\\"); break; case '/': sb.append("\\/"); break; case '\b': sb.append("\\b"); break; case '\f': sb.append("\\f"); break; case '\n': sb.append("\\n"); break; case '\r': sb.append("\\r"); break; case '\t': sb.append("\\t"); break; default: sb.append(c); } } sb.append('\"'); return sb.toString(); } public static String map2Json(Map<String, Object> map) { if (map.isEmpty()) return "{}"; StringBuilder sb = new StringBuilder(map.size() << 4); sb.append('{'); Set<String> keys = map.keySet(); for (String key : keys) { Object value = map.get(key); sb.append('\"'); sb.append(key); sb.append('\"'); sb.append(':'); sb.append(toJson(value)); sb.append(','); } // 将最后的 ',' 变为 '}': sb.setCharAt(sb.length()-1, '}'); return sb.toString(); } public static String array2Json(Object[] array) { if (array.length==0) return "[]"; StringBuilder sb = new StringBuilder(array.length << 4); sb.append('['); for (Object o : array) { sb.append(toJson(o)); sb.append(','); } // 将最后添加的 ',' 变为 ']': sb.setCharAt(sb.length()-1, ']'); return sb.toString(); } public static String list2Json(List list) { if (list.size()==0) return "[]"; StringBuilder sb = new StringBuilder(list.size() << 4); sb.append('['); for (Object o : list) { sb.append(toJson(o)); sb.append(','); } // 将最后添加的 ',' 变为 ']': sb.setCharAt(sb.length()-1, ']'); return sb.toString(); } public static String number2Json(Number number) { return number.toString(); } public static String boolean2Json(Boolean bool) { return bool.toString(); } public static String timestamp2Json(Timestamp time) { return "\"" + time.toString() + "\""; } public static String toJson(Object o) { if (o==null) return "null"; if (o instanceof String) return string2Json((String)o); if (o instanceof Boolean) return boolean2Json((Boolean)o); if (o instanceof Number) return number2Json((Number)o); if (o instanceof Map) return map2Json((Map<String, Object>)o); if (o instanceof Object[]) return array2Json((Object[])o); if (o instanceof Timestamp) { return timestamp2Json((Timestamp) o); } throw new RuntimeException("Unsupported type: " + o.getClass().getName()); } public static void main(String[] args) { String s = "sssssssss"; System.out.print(string2Json(s)); Timestamp time = new Timestamp(System.currentTimeMillis()); System.out.println(timestamp2Json(time)); } }?
三、js文件关键代码:
?
$.post("searchNeUpPopAction.do", { oper :"region", cityIds :cityIds, subType :type }, function(data) { var $div = $("#regionDiv"); var html = "<table><tr><td><input type=\"checkbox\" name=\"regionCheckBox\" onclick=\"selectRegion(1,'" + type + "');\" value=\"0\" title=\"未知区域\">未知区域</td></tr>"; var jsonObj = eval("(" + data + ")"); for ( var i = 0; i < jsonObj.length; i++) { html += " <tr><td><input type=\"checkbox\" name=\"regionCheckBox\" onclick=\"selectRegion(1,'" + type + "');\" value=\"" + jsonObj[i].id + "\">" + jsonObj[i].name + "</td></tr>"; } });