参考 http://www.cnblogs.com/linjiqin/archive/2011/09/19/2181408.html
在移动互联网开发的过程中,数据业务的传输一般由xml json这两种为主,json感觉在对象的使用上更加的便捷,我们就来一探究竟。
public class SimInfo {
private String imei;
private String imsi;
private String telephone;
public String getImei() {
return imei;
}
public void setImei(String imei) {
this.imei = imei;
}
public String getImsi() {
return imsi;
}
public void setImsi(String imsi) {
this.imsi = imsi;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
}
需要以下 jar包
1、java对象转换为json对象,并反转解析还原
SimInfo simInfo = new SimInfo();
simInfo.setTelephone("1111");
simInfo.setImei("2222");
simInfo.setImsi("3333");
String json = new JSONArray().fromObject(simInfo).toString();
System.out.println("json: " + json);
json = json.substring(1, json.length() - 1);
JSONObject obj = new JSONObject().fromObject(json);//从json对象再转为java对象
SimInfo simInfo_t = (SimInfo) JSONObject.toBean(obj, SimInfo.class);
System.out.println("obj: " + simInfo_t);
System.out.println(simInfo_t.getImei());
System.out.println(simInfo_t.getImsi());
System.out.println(simInfo_t.getTelephone());
---------------执行结果如下:
json: [{"imei":"2222","imsi":"3333","telephone":"1111"}]
obj: SimInfo@1ac04e8
2222
3333
1111
2、java list 对象转换为json对象,并反转解析还原
SimInfo simInfo = new SimInfo();
simInfo.setTelephone("1111");
simInfo.setImei("2222");
simInfo.setImsi("3333");
// java对象转换为json对象
SimInfo simInfo2 = new SimInfo();
simInfo2.setTelephone("1111x");
simInfo2.setImei("2222x");
simInfo2.setImsi("3333x");
List<SimInfo> list = new ArrayList<SimInfo>();
list.add(simInfo);
list.add(simInfo2);
String json = new JSONArray().fromObject(list).toString();
System.out.println("json: " + json);
List<SimInfo> simInfos = getJavaCollection(new SimInfo(), json);
System.out.println(simInfos.size());
for (SimInfo simInfo1 : simInfos) {
System.out.println("Imei: " + simInfo1.getImei());
System.out.println("=========");
}
private static <T> List<T> getJavaCollection(T clazz, String jsons) {
List<T> objs = null;
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(jsons);
if (jsonArray != null) {
objs = new ArrayList<T>();
List list = (List) JSONSerializer.toJava(jsonArray);
for (Object o : list) {
JSONObject jsonObject = JSONObject.fromObject(o);
T obj = (T) JSONObject.toBean(jsonObject, clazz.getClass());
objs.add(obj);
}
}
return objs;
}
---------------执行结果如下:
json: [{"imei":"2222","imsi":"3333","telephone":"1111"},{"imei":"2222x","imsi":"3333x","telephone":"1111x"}]
2
Imei: 2222
=========
Imei: 2222x
=========
3、补充实例,如果在class对象中包含存在list对象,是否还可以正常转换,答案是肯定得,见以下实例
public class SimInfo {
private String imei;
private String imsi;
private String telephone;
private List<Replay> re;
public String getImei() {
return imei;
}
public void setImei(String imei) {
this.imei = imei;
}
public String getImsi() {
return imsi;
}
public void setImsi(String imsi) {
this.imsi = imsi;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public List<Replay> getRe() {
return re;
}
public void setRe(List<Replay> re) {
this.re = re;
}
}
SimInfo simInfo = new SimInfo();
simInfo.setTelephone("1111");
simInfo.setImei("2222");
simInfo.setImsi("3333");
List<Replay> re = new ArrayList<Replay>();
re.add(new Replay("title1","name1"));
re.add(new Replay("title2","name2"));
simInfo.setRe(re);
// java对象转换为json对象
String json = new JSONArray().fromObject(simInfo).toString();
System.out.println("json: " + json);
json = json.substring(1, json.length() - 1);
JSONObject obj = new JSONObject().fromObject(json);
SimInfo simInfo_t = (SimInfo) JSONObject.toBean(obj, SimInfo.class);
System.out.println("obj: " + simInfo_t);
System.out.println(simInfo_t.getImei());
System.out.println(simInfo_t.getImsi());
System.out.println(simInfo_t.getTelephone());
System.out.println(simInfo_t.getRe().size());
---------------执行结果如下:
json: [{"imei":"2222","imsi":"3333","re":[{"name":"name1","title":"title1"},{"name":"name2","title":"title2"}],"telephone":"1111"}]
obj: SimInfo@df6ccd
2222
3333
1111
2
分享到:
相关推荐
Gson这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。
使用json-lib实现json与Java对象的互转
1.解析json字符串 2.将json字符串转换为java对象 3.将java对象转换为json字符串
json与java对象互转
json-lib-2.4-jdk15 jakarta commons-lang 2.5 jakarta commons-beanutils 1.8.0 jakarta commons-collections 3.2.1 jakarta commons-logging 1.1.1 ezmorph 1.0.6
里面有详细的json字符串和java对象(JavaBean,HashMap,ArrayList,Array...)的互相转化
使用JSON-LIB转换JAVA对象(转载) jave对象转json json字符串转java对象demo 下载直接导入Eclipse
net.sf.json.JSONObject ==> Java对象
使用jackson完成json与java对象的互相转换实例
Java对象和Json对象互转采购的Gson方式所需要的jar包,内容包含四个所需要的jar包,解压后直接复制到项目的web-inf下的lib文件夹下,右键导入到项目中即可使用
Java中,使用jackson完成json与Java对象互转
net.sf.json.JSONObject可以处理简单java对象和格式正确的json字符串互相转换。 net.sf.json.JSONArray...1.json字符串转简单java对象 2.简单java对象转json字符串 3.json字符串转集合对象 4.集合对象转json字符串
高效的JSON与Object互转的工具源代码,如果JSON数据未按该工具规定的数据格式转化成对象,将转化成java.util.Map实例。 (比JSON官方的API更适用。支持对象之间的多级引用,支持Map, List等集合。不需要引用其它中间...
form数据与json对象的互相转换(完整版) * 将web Form 的数据转化成json字符串 * 将json对象的值解析后填入web Form 在AJAX开发中这是关键技术: 1、将form中的数据利用本工具转换成json格式的字符串,再通过ajax传...
* 从一个JSON 对象字符格式中得到一个java对象 * * @param jsonString * @param pojoCalss * @return */ @SuppressWarnings("unchecked") public static <T> T jsonToObject(String jsonString, Class<T> ...
工具类---实现实体类与Json的转换
主要介绍了java对象与json对象之间互相转换实现方法,结合实例形式分析了java对象与json对象相互转换实现步骤与相关操作技巧,需要的朋友可以参考下
NULL 博文链接:https://web4j.iteye.com/blog/1746838
java对象与json报文、xml报文的转换,json与xml报文的转换,适合新手理解报文转换以及格式
最近在搞一个json的需求,对端提供的json首字母都是大写的。这样转json起来有点难度,从csdn上贴的大神的解决方式,分值比较高。然后自己修改了下,符合自己的需求,就放在这里了。