//后台将map转成json
response.setContentType("text/json;charset=UTF-8");
response.getWriter().print(Json.toJson(returnMap));
//公用json方法
/**
* JSON实用处理类
* @author
*/
public class Json {
public static String toJson(Object obj) {
String s = castToJson(obj);
if (s != null) {
return s;
} else {
return toJson(getAttributes(obj));
}
}
public static String toJson(Map map) {
String result = "";
Object[] keyArr = map.keySet().toArray();
for (int i = 0; i < keyArr.length; i++) {
Object value = map.get(keyArr[i]);
String s = castToJson(value);
if (s != null) {
result += "\"" + keyArr[i] + "\":" + s + ",";
} else if (value instanceof List) {
String v = toJson((List) value);
result += "\"" + keyArr[i] + "\":" + v + ",";
} else if (value instanceof Object[]) {
String v = toJson((Object[]) value);
result += "\"" + keyArr[i] + "\":" + v + ",";
} else if (value instanceof Map) {
Map attr = castMap((Map) value);
attr = removeListAttr(attr);
result += "\"" + keyArr[i] + "\":" + Json.toJson(attr) + ",";
// }else if(value instanceof List){
// List attr =(List)value;
// result += "\"" + keyArr[i] + "\":" + Json.toJson(attr) + ",";
} else if (value.getClass().getName().startsWith("java") == false) {
Map attr = getAttributes(value);
attr = removeListAttr(attr);
result += "\"" + keyArr[i] + "\":" + Json.toJson(attr) + ",";
} else {
result += "\"" + keyArr[i] + "\":" + "\"" + value.toString() + "\",";
}
}
if (result.length() == 0) {
return "{}";
} else {
return "{" + result.substring(0, result.length() - 1) + "}";
}
}
public static String toJson(Object[] aa) {
if (aa.length == 0) {
return "[]";
} else {
String result = "";
for (int i = 0; i < aa.length ; i++) {
Object obj = aa[i];
String s = castToJson(obj);
if (s != null) {
result += s + ",";
} else if (obj instanceof Map) {
Map map = castMap((Map) obj);
//map = removeListAttr(map);
result += toJson(map) + ",";
} else {
Map attr = getAttributes(obj);
attr = removeListAttr(attr);
result += toJson(attr) + ",";
}
}
return "[" + result.substring(0, result.length() - 1) + "]";
}
}
public static String toJson(List ll) {
return toJson(ll.toArray());
}
/**
* 取得对象的属性
*
* @param obj
* @return 对象属性表
*/
public static Map getAttributes(Object obj) {
Class c = obj.getClass();
try {
Method method = c.getMethod("isProxy", null);
Boolean result = (Boolean) method.invoke(obj, null);
if (result.booleanValue() == true) {
c = c.getSuperclass();
}
} catch (Exception e) {
}
Map attr = new HashMap();
// 取得所有公共字段
Field field[] = c.getFields();
for (int i =0; i < field.length; i++) {
Field f = field[i];
try {
Object value = f.get(obj);
attr.put(f.getName(), value);
} catch (Exception e) {
}
}
// 取得所有本类方法
c.getDeclaredMethods();
Method method[] = c.getDeclaredMethods();
for (int j = 0; j < method.length; j++) {
Method m = method[j];
String mname = m.getName();
if (mname.equals("getClass")) {
continue;
} else if (mname.startsWith("get")) {
String pname = mname.substring(3);
if (pname.length() == 1) {
pname = pname.toLowerCase();
} else {
pname = pname.substring(0, 1).toLowerCase()
+ pname.substring(1);
}
try {
Object value = m.invoke(obj, null);
attr.put(pname, value);
} catch (Exception e) {
}
} else if (mname.startsWith("is")) {
String pname = mname.substring(2);
if (pname.length() == 1) {
pname = pname.toLowerCase();
} else {
pname = pname.substring(0, 1).toLowerCase()
+ pname.substring(1);
}
try {
Object value = m.invoke(obj, null);
attr.put(pname, value);
} catch (Exception e) {
}
}
}
return attr;
}
/**
* 将简单对象转换成JSON串
*
* @param obj
* @return 如果是简单对象则返回JSON,如果是复杂对象则返回null
*/
private static String castToJson(Object obj) {
if (obj == null) {
return "null";
} else if (obj instanceof Boolean) {
return obj.toString();
} else if (obj instanceof Integer || obj instanceof Long
|| obj instanceof Float || obj instanceof Double
|| obj instanceof Short || obj instanceof java.math.BigInteger
|| obj instanceof java.math.BigDecimal) {
return obj.toString();
} else if (obj instanceof String) {
String v = (String) obj;
v = v.replaceAll("\\\\", "\\\\\\\\");
v = v.replaceAll("\n", "\\\\n");
v = v.replaceAll("\r", "\\\\r");
v = v.replaceAll("\"", "\\\\\"");
v = v.replaceAll("'", "\\\\\'");
return "\"" + v + "\"";
} else if (obj instanceof java.sql.Date) {
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyy-MM-dd");
java.sql.Date v = (java.sql.Date) obj;
String s = df.format(new java.util.Date(v.getTime()));
return "\"" + s + "\"";
} else if (obj instanceof java.util.Date) {
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyy-MM-dd");
java.util.Date v = (java.util.Date) obj;
String s = df.format(v);
return "\"" + s + "\"";
} else if (obj instanceof java.util.Calendar) {
java.util.Calendar v = (java.util.Calendar) obj;
String s = DateUtils.toDateStr(v);
return "\"" + s + "\"";
} else if (obj instanceof java.sql.Timestamp) {
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
java.sql.Timestamp v = (java.sql.Timestamp) obj;
String s = df.format(new java.util.Date(v.getTime()));
return "\"" + s + "\"";
} else if (obj instanceof java.sql.Clob) {
return "\"" + "" + "\"";
} else if (obj instanceof java.sql.Blob) {
return "\"" + "" + "\"";
} else {
return null;
}
}
public static Map castMap(Map map) {
Map newMap = new HashMap();
Object key[] = map.keySet().toArray();
for (int i = 0; i < key.length ; i++) {
newMap.put(key[i].toString(), map.get(key[i]));
}
return newMap;
}
/**
* 删除属性中类型是List的属性
*
* @param map
* @return
*/
private static Map removeListAttr(Map map) {
Map newMap = new HashMap();
Object[] entry = map.entrySet().toArray();
for (int i = 0; i < entry.length ; i++) {
Entry en = (Entry) entry[i];
if (!(en.getValue() instanceof List)) {
newMap.put(en.getKey(), en.getValue());
}
}
return newMap;
}
}
//easyui-combobox接收后台传来的list数据,msg.scjxqhlist为list集合
success:function(msg){
//$("#nsrscjx").combobox("loadData",msg.scjxqhlist);
$("#nsrscjx").combobox({
data: msg.scjxqhlist,
valueField: 'jdxzDm',
textField: 'jdxzmc'
});
}
分享到:
相关推荐
EasyUI 是一个基于 jQuery 的前端框架,主要用于快速构建用户界面,尤其适用于后台管理系统。这个"easyUI例子_easyui1.4.4"压缩包提供了一套使用 EasyUI 1.4.4 版本的经典后台管理模板,适用于开发人员快速搭建功能...
近期由于参与的一个Web系统项目前台使用了EasyUI作为Web解决方案,所以查了一下EasyUI的相关资料,发现离线的中文API不太多,而且版本都比较老,索性自己讲EasyUI官网给扣下来,然后做了翻译,文档是2月份过年的时候...
《jQuery EasyUI 主题详解与应用》 jQuery EasyUI 是一款基于 jQuery 的前端框架,它提供了丰富的组件和易于使用的API,极大地简化了Web界面的开发。而其核心魅力之一,便是丰富的主题系统,使得开发者可以轻松定制...
EasyUI InsdepTheme是一款基于EasyUI的皮肤美化版本,它为开发者提供了更加美观且自定义的界面风格。EasyUI是一个轻量级的JavaScript框架,主要用于构建Web应用的用户界面,它基于jQuery,提供了丰富的组件和易用的...
EasyUI 是一个基于 jQuery 的轻量级前端框架,它为开发者提供了一系列的组件和插件,使得构建交互式用户界面变得更加便捷。这个压缩包“jquery-easyui.zip”包含了使用 EasyUI 实现的一个HTML框架,它主要用于简化...
EasyUI 是一个基于 jQuery 的前端开发框架,专为构建用户界面而设计。它提供了一套完整的组件和样式,包括布局、表格、对话框、菜单、按钮等,使得开发者能够快速地构建出美观且功能丰富的 web 应用。在这个“easyui...
《jQuery EasyUI 1.4.5 API详解》 jQuery EasyUI 是一款基于 jQuery 的前端框架,它提供了丰富的用户界面组件,使得开发者可以快速构建出美观且功能强大的Web应用。在本文中,我们将深入探讨jQuery EasyUI 1.4.5...
在使用UasyUI的时候,在一般的input输入框上添加class="easyui-textbox"属性,则在该输入框上添加的事件将不起作用,但是如果去掉class="easyui-textbox"变成一般的input则起作用。 控件的生成原理,它是把你原有的...
EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列易于使用的组件,帮助开发者快速构建用户界面。这个"easyui官方离线文档"包含了丰富的资源,包括demo、源码、演示以及针对现代前端框架如Vue、Angular和React的...
EasyUI 是一款基于 jQuery 的 UI 组件库,它提供了丰富的界面元素和布局功能,使得开发者能够快速构建出美观且响应式的 web 应用程序。"全套EasyUI示例源码"是一个包含三十多个组件的完整示例集合,可以帮助开发者...
EasyUI 是一个基于 jQuery 的前端框架,用于快速构建用户界面。它简化了网页开发过程,提供了丰富的组件和统一的API接口,使得开发者可以更专注于业务逻辑而非页面展示的细节。这个"jQuery_EasyUI_v1.3.5.exe"文件很...
EasyUI 是一个基于 jQuery 的轻量级前端框架,它提供了丰富的组件和易于使用的主题系统,使得开发者能够快速构建用户界面。本套分享的资源是一组免费且漂亮的 EasyUI 主题,包括黑色和蓝色两种风格,适用于后台管理...
【EasyUI 多层导航框架】是一个基于JavaScript和CSS的前端框架,专为构建具有高效用户体验的Web应用程序而设计。EasyUI提供了一系列组件,包括布局、表格、对话框、菜单、按钮、表单等,而多层导航框架则是其在实际...
在前端开发中,EasyUI 是一个基于 jQuery 的 UI 框架,它提供了一系列美观、易用的组件,用于构建用户界面。在这个实例中,我们将深入探讨 EasyUI 中的两个重要组件:`easyui-textbox` 和 `easyui-combobox`,以及...
EasyUI 是一个基于 jQuery 的前端框架,用于快速开发简洁、美观的Web应用程序界面。这个压缩包包含的是EasyUI 1.5.0的完整源代码,具有官方授权,确保了开发者能够深入理解并自定义其组件,而不受压缩代码的困扰。 ...
EasyUI是中国程序员喜爱的一款基于jQuery的前端用户界面框架,它为快速开发Web应用提供了丰富的组件和功能。"最新EasyUI扁平化"标题暗示我们关注的是EasyUI的一个更新版本,可能着重于现代扁平化设计趋势,这在当前...
EasyUI 是一个基于 jQuery 的轻量级用户界面框架,它为开发者提供了丰富的组件,包括布局、表格、对话框、树形菜单、表单等,帮助快速构建美观且响应式的 web 应用程序。"easyui 视频教程(6)"显然是针对初学者设计的...
EasyUI是一种基于JavaScript和CSS的前端框架,专为构建用户界面而设计,尤其适用于后台管理系统。这个名为"简单的easyui页面"的项目提供了一个简化版的EasyUI页面,非常适合用作前台UI界面,以实现简洁、高效的用户...
EasyUI是一种轻量级的前端开发框架,专为简化网页应用和后台管理系统界面设计而创建。这个名为"EasyUI登录页面.zip"的压缩包文件包含了使用EasyUI框架构建的一个登录页面的相关资源。EasyUI框架主要基于jQuery,它...
在本文中,我们将深入探讨如何在EasyUI框架中有效地使用时间控件,以及如何解决时间格式化的问题。EasyUI是一个基于jQuery的轻量级前端开发框架,它提供了一系列丰富的组件,帮助开发者快速构建用户界面。时间控件是...