JSONObject:JSON对象,就是一个键对应一个值,使用的是大括号{},如:{key:value}
JSONArray:JSON数组,使用中括号[],里面包括着好多的json对象,如:[{key:value},{key:value}]
实体转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
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/