开发者博客:www.developsearch.com
JS解析json:
var t2=[{'srcAreaId':'100362','srcAreaName':'中国大陆'},{'srcAreaId':'100363','srcAreaName':'澳门'}];
var myobj=eval(t2); //通过eval() 函数可以将JSON字符串转化为对象
for(var i=0;i<myobj.length;i++){
alert(myobj[i].name);
alert(myobj[i].age);
}
stringifier用来将一个js对象转换为 JSON 文本
var jsonText = JSON.stringify(obj);
console.info(jsonText);
将ext的grid中选中的记录拼装成json对象传到后台处理
前台JS:
var districts = [];
var recs = distSelectGrid.getSelectionModel().getSelections();
for(var i = recs.length -1; i >= 0; i--){
var districtObj = {};
districtObj.distCode = recs[i].data.distCode;
districtObj.distName = recs[i].data.distName;
districts.push(districtObj);
}
console.info(districts);
Ext.Ajax.request({
url: 'saveNewRebateAreaDistricts.action',
params: 'parentId='+currentNode.id+'&districtJSONStr='+Ext.util.JSON.encode(districts), //把输入参数进行JSON编码
waitMsg: "${app:i18n('saving')}",
success: function(response) {
var resp = Ext.util.JSON.decode(response.responseText);
if(resp.success==true){
currentNode.reload();
onDistSearch();
editForm.getForm().reset();
}else{
if(resp.status==0){
Ext.MessageBox.alert('${app:i18n('prompt')}','${app:i18n('prompt.connection.exception')}');
} else {
Ext.MessageBox.alert('${app:i18n('prompt')}',resp.status);
}
}
}
});
后台取数:
public void saveNewRebateAreaDistricts(Long parentId,String districtJSONStr) {
JSONArray jsonArray = JSONArray.fromObject(districtJSONStr);
for(int i = 0; i < jsonArray.size(); i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
String distCode = jsonObject.get("distCode").toString();
String distName = jsonObject.get("distName").toString();
NewRebateArea newRebateArea = new NewRebateArea();
newRebateArea.setCreator(super.getCurrentUser().getUsername());
newRebateArea.setCreateTm(new Date());
newRebateArea.setModifier(super.getCurrentUser().getUsername());
newRebateArea.setModifyTm(new Date());
newRebateArea.setAreaCode(distCode);
newRebateArea.setAreaName(distName);
newRebateArea.setParentId(parentId);
newRebateArea.setIsDistrict(new Long(1));
this.newRebateAreaDao.saveOrUpdate(newRebateArea);
}
}