JSON的解析之net.sf.json

引言

    最近在为电商项目的APP提供接口,用的就是JSON传值。具体作用就不多说啦,相信大家用的人都知道,在这里给大家介绍一下,在平时我是怎么用的。除了这种JSON包之外其实还有好多种例如com.alibaba.fastjson,据说阿里巴巴的这种性能比较高,目前还没有用过,等我尝试以后再分享给大家。在项目中用到的最多的就是实体转JSONObject互转,实体集合与JSONArray互转。

使用net.sf.json需要导入的包


JSON的解析之net.sf.json_第1张图片

JSONObjectJSONArray的介绍

    JSONObjectJSON对象,就是一个键对应一个值,使用的是大括号{},如:{key:value}

    JSONArray:JSON数组,使用中括号[],里面包括着好多的json对象,如:[{key:value},{key:value}]

JSONObject与实体互转

    实体转JSONObject

SchoolShop_userShop usershop=personalProfileService.findByuserID(product.getPro_PutouTypeId());
JSONObject arvert=JSONObject.fromObject(usershop);
System.out.println(arvert); 
打印结果:{"shopid":1,"shopname":"花儿月圆"}
        JSONObject 转实体
String jsonString="{\"shopid\":1,\"shopname\":\"花儿月圆\"}";
JSONObject jas=JSONObject.fromObject(jsonString);
//获取单个值
String shopname=jas.getString(shopname);
System.out.println(shopname);
打印结果:花儿月圆
//获取实体,再进行获取值
SchoolShop_userShop ssshop=(SchoolShop_userShop)JSONObject.toBean(jas, SchoolShop_userShop.class);
System.out.println(ssshop.getShopname);
打印结果:花儿月圆

JSONArray与实体集合互转

   实体集合转JSONArray

List<SchoolShop_Linkman> linkmanlist=jsonLinkManService.findlinkmanByUserid(UserId);
JSONArray arvert = JSONArray.fromObject(linkmanlist);
System.out.println(arvert); 
打印结果:
[{"cConnectId":7,"cUserName":"666","area":"北京市东城区"}, {"cConnectId":8,"cUserName":"dfds","area":"天 津市和平区"}] 

       JSONArray转实体集合

String jsonArrayString="[{\"cConnectId\":7,\"cUserName\":\"666\",\"area\":\"北 京市东城区\"}, {\"cConnectId\":8,\"cUserName\":\"dfds\",\"area\":\"天 津市和平区\"}] ";
JSONArray ja = JSONArray.fromObject(jsonArrayString);
for(int i=0;i<ja.size();i++){
        JSONObject jsonObject=ja.getJSONObject(i);
       String area=jsonObject.getString("area");
       System.out.println(cConnectId);
      
}
打印结果:北京市东城区

结束语

   实现起来是挺简单,最关键是要掌握要领。举的例子都是很简单的例子,有的复杂的是里面套一层又一层啊。这就需要掌握JSON的原理和结构,其实JSON还可以有很多转换,例如与map,数组,XML等等,不过这些我都还没有接触过,等有时间的话研究研究分享给大家。

顺便推荐大家一个检测JSON串是否正确的工具,个人感觉挺好用的。地址:http://www.bejson.com/




你可能感兴趣的:(JSON的解析之net.sf.json)