js,jquery和struts通过json进行各种类型的数据的交互
如果您发现内容含有错误或公司内部信息,请予以指出,本人不胜感激。。。。
到工作不是很忙时,将介绍此功能!!!从今天开始,准备开javaeye博客,记录工作中的点点滴滴......
首先要做的准备工作是:
引进 js文件:json.js,引进java类JSONObject.java,JSONArray.java ,
JSONStringer.java ,JSONWriter.java, JSONTokener.java,
JSONException.java, JSONString.java (可以去官网下载:http://www.json.org/)
demo1:
利用json从web端向struts2传输Map对象:
内容待续。。。。。。。。。
js文件中加入:
var userArray=new Array();for(var i=1;i<=5;i++) { var id=i; var userName="name"+i; userArray.push({id:id, userName:name}); } var users = JSON.stringify(userArray); //记住不是:JSON.tostring(userArray); var url = "testJsonAction"; var params = {"users":users}; $.getJSON(url,params,function(result){ alert(result); });
<action name="testJsonAction" method="testJson"> <result name="success" type="json"><param name="root">result</param> </result></action>
package test;import java.util.HashMap;import java.util.Map;import com.org.json.JSONArray;import com.org.json.JSONException;import com.opensymphony.xwork2.ActionSupport;public class TestJsonAction extends ActionSupport {private String users;private String result;public String testJson() throws JSONException {Map<Long, String> usersMap = new HashMap<Long, String>();// 将JSON格式的字符串构造成JSON对象JSONArray jsonArray = new JSONArray(users); for (int i = 0; i < jsonArray.length(); i++) {Long id = jsonArray.getJSONObject(i).getLong("id");String userName = jsonArray.getJSONObject(i).getString("userName");usersMap.put(id, userName);}//do your other task; if(条件成立) { result="success"; }else{ result="failure"; }return SUCCESS;} @JSON(serialize=false)public String getUsers() {return users;} public void setUsers(String users) {this.users = users;}@JSON(serialize=false)public String getResult() {return result;}public void setResult(String result) {this.result = result;}}