com.alibaba.fastjson和net.sf.json用法区别

情景再现:在进行项目迁移时,之前是net.sf.json处理,迁移后是com.alibaba.fastjson处理,这两者处理json串时会有些不同,在此记录一下。

 

案例展示:目标是把json串,转换成javabean对象。

1.net.sf.json处理json串如下:

@RequestMapping(value = "/query", method = RequestMethod.POST)
@ResponseBody
public String query(@RequestBody String body) {

     //【1】把json串转化成json对象
     JSONObject object = JSONObject.fromObject(body);//【!不同之处!】
       
     //【2】根据json对象的属性值获取单个字段值
     String  name = (String) object.get("name");

     //【3】根据json对象属性值获取list转换成json数组
     JSONArray jsnoArray = (JSONArray) object.get("list");

     //【4】遍历json数组         
     for (Iterator iter = jsnoArray.iterator(); iter.hasNext(); ) {

     //【5】遍历出某个json对象    
           JSONObject jsonObject = (JSONObject) iter.next();

     //【6】把json对象转换成javabean对象  
            User user=(User) JSONObject.toBean(jsonObject, User.class);//【!不同之处!】
             
     //【7】得到javabean就可以进行其他操作 
           ...
      }

     return "";
   }

2.com.alibaba.fastjson处理json串如下:

@RequestMapping(value = "/query", method = RequestMethod.POST)
@ResponseBody
public String query(@RequestBody String body) {

     //【1】把json串转化成json对象
     JSONObject object = JSONObject.parseObject(body);//【!不同之处!】
       
     //【2】根据json对象的属性值获取单个字段值
     String  name = (String) object.get("name");

     //【3】根据json对象属性值获取list转换成json数组
     JSONArray jsnoArray = (JSONArray) object.get("list");

     //【4】遍历json数组         
     for (Iterator iter = jsnoArray.iterator(); iter.hasNext(); ) {

     //【5】遍历出某个json对象    
     JSONObject jsonObject = (JSONObject) iter.next();

     //【6】把json对象转换成javabean对象  
     User user=  JSON.parseObject(jsonObject.toJSONString(), User.class);//【!不同之处!】
             
     //【7】得到javabean就可以进行其他操作 
           ...
      }

     return "";
   }

最后总结两者区别:

【1】json转换json对象

net.sf.json使用:JSONObject object = JSONObject.fromObject(body);

com.alibaba.fastjson: JSONObject object = JSONObject.parseObject(body);

【2】json对象转换成javabean对象

net.sf.json使用:User user=(User) JSONObject.toBean(jsonObject, User.class);

com.alibaba.fastjson: User user=  JSON.parseObject(jsonObject.toJSONString(), User.class);

ok 就到这里啦

 

 

 

你可能感兴趣的:(Javaweb,Java,json,fastjson)