json学习系列(8)JSON与JAVA数据的相互转换实例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了json学习系列(8)JSON与JAVA数据的相互转换实例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5283字,纯文字阅读大概需要8分钟。
内容图文
一.完整案例
先定义一个java实体对象,如下:
package com.pcitc.json.cnblog; /** * SimInfo实体对象 * * @Description * @author admin * @created 2015年6月30日 上午10:23:21 * @version * @history * @see */ public class SimInfo { private String addTime; private String iccid; private int id; private String imei; private String imsi; private String phoneType; private String remark; private String tel; public String getAddTime() { return addTime; } public void setAddTime(String addTime) { this.addTime = addTime; } public String getIccid() { return iccid; } publicvoid setIccid(String iccid) { this.iccid = iccid; } publicint getId() { return id; } publicvoid setId(int id) { this.id = id; } public String getImei() { return imei; } publicvoid setImei(String imei) { this.imei = imei; } public String getImsi() { return imsi; } publicvoid setImsi(String imsi) { this.imsi = imsi; } public String getPhoneType() { return phoneType; } publicvoid setPhoneType(String phoneType) { this.phoneType = phoneType; } public String getRemark() { return remark; } publicvoid setRemark(String remark) { this.remark = remark; } public String getTel() { return tel; } publicvoid setTel(String tel) { this.tel = tel; } }
1. json对象转换为java对象
@Test public void jsonToJava() { String json = "[{\"addTime\":\"2011-09-19 14:23:02\",\"iccid\":\"1111\",\"id\":0,\"imei\":\"2222\",\"imsi\":\"3333\",\"phoneType\":\"4444\",\"remark\":\"aaaa\",\"tel\":\"5555\"}]"; // 接收{}对象,此处接收数组对象会有异常if (json.indexOf("[") != -1) { json = json.replace("[", ""); } if (json.indexOf("]") != -1) { json = json.replace("]", ""); } // 把字符串形式的JSON串转换成JSON对象JSONObject obj = JSONObject.fromObject(json); // 把JSON对象转成java对象SimInfo simInfo = (SimInfo) JSONObject.toBean(obj, SimInfo.class); // 输出java对象的相关属性 System.out.println(simInfo.getAddTime()); System.out.println(simInfo.getIccid()); System.out.println(simInfo.getImei()); System.out.println(simInfo.getImsi()); System.out.println(simInfo.getPhoneType()); System.out.println(simInfo.getRemark()); System.out.println(simInfo.getTel()); System.out.println(simInfo.getId()); }
输出结果:
2. 将json数组转换为java集合对象
/** * 将json数组转换为java集合对象 * * @Description * @author admin * @created 2015年6月30日 上午10:10:15 */ @Test public void jsonToJavaCollections() { String jsons = "[{\"addTime\":\"2011-09-19 14:23:02\",\"iccid\":\"1111\",\"id\":0,\"imei\":\"2222\",\"imsi\":\"3333\",\"phoneType\":\"4444\",\"remark\":\"aaaa\",\"tel\":\"5555\"}," + "{\"addTime\":\"2011-11-11 14:23:02\",\"iccid\":\"2222\",\"id\":0,\"imei\":\"2222\",\"imsi\":\"3333\",\"phoneType\":\"4444\",\"remark\":\"aaaa\",\"tel\":\"5555\"}]"; // 把字符串形式的JSON串转换成JSON数组对象JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(jsons); if (jsonArray != null) { // 把JSON数组对象转换成java集合对象 List<Object> list = (List<Object>) JSONSerializer.toJava(jsonArray); for (Object o : list) { // 把java对象转换成JSON对象JSONObject jsonObject = JSONObject.fromObject(o); // 把JSON对象转换成特定的java对象SimInfo simInfo = (SimInfo) JSONObject.toBean(jsonObject, new SimInfo().getClass()); // 输出java对象属性 System.out.println("addTime: " + simInfo.getAddTime()); } } }
输出结果:
3. java对象转换成为JSON对象
/** * java对象转换成为JSON对象 * * @Description * @author admin * @created 2015年6月30日 上午10:31:08 */ @Test public void javaToJson() { SimInfo simInfo = new SimInfo(); simInfo.setAddTime("2015-06-30"); simInfo.setIccid("1111"); simInfo.setImei("2222"); simInfo.setImsi("3333"); simInfo.setPhoneType("4"); simInfo.setRemark("aaaa"); simInfo.setTel("5555"); // java对象转换为json数组对象 JSONArray jsonArray = new JSONArray().fromObject(simInfo); // json: // [{"addTime":"2011-09-19 14:23:02","iccid":"1111","id":0,"imei":"2222","imsi":"3333","phoneType":"4444","remark":"aaaa","tel":"5555"}] System.out.println("json: " + jsonArray.toString()); }
输出结果:
二. 基于json-lib.jar包Json实例程序的一些总结
1. 把一个JSON字符串转换成JSON对象的两种方式:
String json = "[{\"addTime\":\"2011-09-19 14:23:02\",\"iccid\":\"1111\",\"id\":0,\"imei\":\"2222\",\"imsi\":\"3333\",\"phoneType\":\"4444\",\"remark\":\"aaaa\",\"tel\":\"5555\"}]"; if (json.indexOf("[") != -1) { json = json.replace("[", ""); } if (json.indexOf("]") != -1) { json = json.replace("]", ""); }
方式一:
JSONObject obj = JSONObject.fromObject(json);
方式二:
JSONObject obj = (JSONObject) JSONSerializer.toJSON(json);
2. JSONObject to DynaBean
String json = "{name=\"json\",bool:true,int:1,double:2.2}"; JSONObject jsonObject = JSONObject.fromObject(json); //抽象的写法:DynaBean bean = (DynaBean) JSONSerializer.toJava( jsonObject ); Object bean = JSONObject.toBean(jsonObject); //Object bean1 = JSONSerializer.toJava(jsonObject);
3. JSONObject to JavaBean
String json = "{name:\"zhangsan\",age:25,hight:1.72,sex:true}"; JSONObject jsonObject = JSONObject.fromObject(json); UserBean bean = (UserBean) JSONObject.toBean(jsonObject, UserBean.class);
4. JSONArray to List
String json = "[\"first\",\"second\"]"; JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json); List output = (List) JSONSerializer.toJava(jsonArray);
5. JSONArray to array
String json = "[\"first\",\"second\"]"; JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY); Object[] output = (Object[]) JSONSerializer.toJava(jsonArray, jsonConfig);
原文:http://www.cnblogs.com/longshiyVip/p/4609778.html
内容总结
以上是互联网集市为您收集整理的json学习系列(8)JSON与JAVA数据的相互转换实例全部内容,希望文章能够帮你解决json学习系列(8)JSON与JAVA数据的相互转换实例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。