json解析从前端传入的数据
前端页面用ajax请求访问后台方法 比如传的data数据是例如data数据类型是{userGroupId:"10000",alarmItems:[{id:"1000",type:"1"},{id:"10001",type:"2"}]}, 用json解析
一般js文件写法是date:{} 但是由于这个写法有 {alaremItems:[]}数组 所以js写法一般为data:JSON.stringify(jsondata), 这个jsondata是申明的数组
var jsondata={userGroupId:"10000",alarmItems:[{id:"1000",type:"1"},{id:"10001",type:"2"}]}; 然后在ajax 请求中的 data:JSON.stringify(jsondata),就可以了这个是前端传输
具体的如下: var jsondata={userGroupId:"10000",alarmItems:[{id:"1000",type:"1"},{id:"10001",type:"2"}]};
$.ajax({
type:"post",
contentType:"application/json;charset=utf-8",
url:"http://具体的项目到具体的方法",
data:JSON.stringify(jsondata),
async:true,
dataType:"json",
success:function(data){
console.log(data);
}
error:function(err){
}
});
后端解析json 首先第一步接受 data数据一般在controller中的方法中这样写 @RequestBody LinkedHashMap<String,Object> list用这个接受{userGroupId:"10000",alarmItems:[{id:"1000",type:"1"},{id:"10001",type:"2"}]};前端传过来的 data,LinkedHashMap<String,Object> 对象
@ResponseBody
@RequestMapping(value="save")
pulbic AjaxJson save(@RequestBody LinkedHashMap<String,Object> list){
AjaxJson j=new AjaxJson();
String jsonStr=JSON.toJSONString(list);//-json字符串
JSONObject json=JSON.parseObject(jsonStr);//json对象
String uid=json.getString("userGroupId");//----获取对应的值
JSONArray alarmItems=json.getJSONArray("alarmItems");//---获取数组值 JSONArray是json数组 []中括号的内容
for(int i=0;i<alarmItems.size();i++){
JSONObject alarmItem=alarmItems.getJSONObject(i); //----JSONObject这个是 json的对象就是[]中的{}内容
String idstr=alarmItem.getString("id");//---获取ID的值
String type=alarmItem.getString("type");//---获取type的值
//---后面的就是对数据的处理 增删改查 方法
}
j.setMsg("用户操作成功");
return j;
}
下面讲解一下AjaxJson这个类的作用和写法
具体代码如下:
public class AjaxJson(){
private boolean success=true;//--是否成功
private String errorCode="-1";//--错误代码
private String msg="操作成功";//--- 提示信息
private LinkendHashMap<String,Object> body=new LinkedHashMap();//---封装JSON的map
//----省略 set和get的方法生成;
//-- 其中又写了两个其他的方法 如下:
public void put(String key,Object value){
body.put(key,value);
}
public void remove(String key){
body.remove(key);
}
@JsonIgnore//--返回对象时忽略此属性 JsonMapper类继承了 ObjectMapper这个类
public String getJsonStr(){
String json=JsonMapper.getInstance().toJson(this);
return json;
}
}