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;

  }

 

 

 

}

 

posted @ 2017-07-20 11:28  伤心的鸽子  阅读(9394)  评论(1编辑  收藏  举报