?
?
一、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>";
}
});