web开发中传输对象经常使用json字符串,表单提交,ajax 请求以及后台返回的常常都是json字符,可以利用别人封装好的json字符操作方法,怕导包麻烦也可以自定义一些方法,只要满足自己需求即可,下面是我在项目中用到的一个很简单的json操作方法
1.先定义了一个要传输的 对象
//玩家部队对象
function army(a_seq,army_id,for_id){
this.a_seq = a_seq;
this.army_id = army_id;
this.for_id = for_id;
this.getSeq=function(){
return this.a_seq;
};
this.getArmy_id=function(){
return this.army_id;
};
this.getfor_id=function(){
return this.for_id;
};
this.setfor_id=function(f_id){
this.for_id = f_id;
};
}
2.ajax提交时 转化为json对象
//将选择的部队转化成jsonArray
function toJSONArray(obj){
var jsonArray = new Array();
for(var i = 0;i<obj.length;i++){
//按照json字符串的格式 将对象拼接好
var jsonObj ="{/"army_id/":/""+obj[i].getArmy_id()+"/" ,"+"/"army_type/":/""+army_type+"/"
,"+"/"for_id/":/""+obj[i].getfor_id()+"/"}"
jsonArray.push(jsonObj);
}
//保存成 json array
var ja ="{/"armyArray/":["+jsonArray.toString()+"]}";
return ja;
}
3. 后台直接利用 net.sf.json.JSONArray 包提供的方法解析就可以了
// 玩家此次攻击派出的部队 ,由页面得到的json对象
String armys = webInput.getParameter("armys");
JSONObject jb = JSONObject.fromObject(armys);
JSONArray array = jb.getJSONArray("armyArray"); //得到jsonArray
Iterator<JSONObject> iter = array.iterator();
List<String> armyTypeList = new ArrayList<String>();
while (iter.hasNext()) {
JSONObject jsobj = iter.next();
String army_id = jsobj.getString("army_id");
String army_type =jsobj.getString("army_type");
rmyTypeList.add(army_type); //这样就可以还原成 原来的对象了
}
json 字符串 简单应用
最新推荐文章于 2022-03-07 09:11:26 发布