1.ajax异步调用方法
$.ajax({
type:'post',
url:'getWellListByStructOrOilfield.action',
data:{
//传递参数
struct : structParam,
//form表单提交
$("#form").serialize()
},
cache:false,
dataType:'json',
success:function(data){
}
});
2.Action
action里将参数转成json
//1.(1)使用gson()
String jsonData = new Gson().toJson(wellList);
//(2)使用JSON
/**
* 功能:java对象转为json表达式
* @param target java对象
* @param jsonConfig json配置
* @return String
*/
public static String object2json(Object target, JsonConfig jsonConfig) {
if (JSONUtils.isArray(target)) {
return JSONArray.fromObject(target, jsonConfig).toString();
} else {
return JSONObject.fromObject(target, jsonConfig).toString();
}
}
//3.响应到页面
response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write(json);
2.json对象的转化
var jsonStr = JSON.stringify(josnObj);
$.ajax({
type:'post',
url:'../foreignexchange/fexLedgerManager.do',
data : {
jsonStr :jsonStr
},
cache:false,
dataType:'json',
success:function(data){
}
});
后端将json字符串转化成对象
String jsonStr= request.getParameter("jsonStr");
JSONArray array = JSONArray.fromObject(jsonStr);//
//方法一
List<BtdbForeignExchangeDtl> list = new ArrayList<BtdbForeignExchangeDtl>();
for (Object object : array) {
JSONObject jsonObject = (JSONObject) object;
BtdbForeignExchangeDtl dtl = (BtdbForeignExchangeDtl) JSONObject.toBean(jsonObject, BtdbForeignExchangeDtl.class);
list.add(dtl);
}
//方法二
List<Map> jList = (List<Map>)JSONArray.toList(array , Map.class);
注意:
在运行JSONArray.fromObject(list)时候会出现问题:java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException。
原因是因为缺少jar包。分别是:commons-beanutils-1.8.3.jar、commons-collections-3.2.1.jar、commons-lang-2.5.jar、commons-logging-1.1.1.jar、ezmorph-1.0.6.jar、json-lib-2.1-jdk15.jar、json-lib-2.3.jar。
已整理好,点击链接即可跳转下载 。json相关jar包(已整理完成)