json信息的后台到前台的传输

时间:2023-03-09 15:30:13
json信息的后台到前台的传输

公共方法:


/**
* 实际返回的是 response.setContentType("text/html;charset=utf-8");
*
* @param o
*/
public void writeJson(Object o) {
String json = getJsonString(o);
try {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write(json);
} catch (IOException e) {
e.printStackTrace();
}
} public String getJsonString(Object o) {
ObjectMapper om = new ObjectMapper();
StringWriter sw = new StringWriter();
try {
JsonGenerator jg = new JsonFactory().createJsonGenerator(sw);
om.writeValue(jg, o);
jg.close();
} catch (IOException e) {
e.printStackTrace();
}
return sw.toString();
}

Json形式:

  • 形式一:
{"total":29,"rows":[{"id":1,"brandName":"兄弟","isvalid":"已启用"},{"id":2,"brandName":"西红柿","isvalid":"已启用"}]}

后台实现:

List<AuxiliaryBrand> list =  auxiliaryService.getAuxiliaryBrand(paramMap,intPage,number,user);

int count = auxiliaryService.getAuxiliaryBrandCount(paramMap,user);

Map<String, Object> map = new HashMap<String, Object>();
map.put("total", count);
map.put("rows", list2); this.writeJson(map);//顶部公共方法

前台获取:

 onLoadSuccess: function (data) {
if (data.total == 0) {
//active
} var rows = data.rows;
}
  • 形式二:
{"success":false,"msg":"品牌名称【兄弟】已存在!请重新输入!","obj":null}

后台:

 /**
* 品牌重复性检索
*/
public void repeatCheckAuxiliaryBrand(){
String brandName = request.getParameter("brandName");
String actionType = request.getParameter("actionType");
int checkFlag= auxiliaryService.repeatCheckAuxiliaryBrand(brandName,actionType);
Json j=new Json();
if(checkFlag==2){
j.setSuccess(false);
j.setMsg("品牌名称【"+brandName+"】已存在!请重新输入!");
}else{
j.setSuccess(true);
j.setMsg(actionType);
}
this.writeJson(j);//顶部公共方法
}

Json对象j的数据

json信息的后台到前台的传输

response.getWriter().write(json);后的值

json信息的后台到前台的传输

传到前台接收:

 /**
* 重复检验
*/
function repeatCheck(actionType){
var brandName = $('#brandNames').textbox('getValue');
var url = context_path + '/auxiliary/repeatCheckAuxiliaryBrand.do';
$.ajax({
url : url,
data : {
brandName : brandName,
actionType :actionType
},
dataType : 'json',
success : function(result) {
if (result.success){
var action=result.msg;
submitSave(action);
return true;
}else{
$.messager.alert('操作提示', result.msg,'warning');
return false;
}
}
});
}