失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java对象与json对象间的相互转换

java对象与json对象间的相互转换

时间:2019-05-12 21:05:55

相关推荐

java对象与json对象间的相互转换

工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载。

点击下载

1.简单的解析json字符串

首先将json字符串转换为json对象,然后再解析json对象,过程如下。 JSONObject jsonObject = JSONObject.fromObject(jsonStr);

根据json中的键得到它的值 String name = jsonObject.getString("name");

int num = jsonObject.getInt("num");

String sex = jsonObject.getString("sex");

int age = jsonObject.getInt("age");

2.将json字符串转换为java对象

同样先将json字符串转换为json对象,再将json对象转换为java对象,如下所示。 JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象

将json对象转换为java对象 Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象

3.将java对象转换为json字符串

先将java对象转换为json对象,在将json对象转换为json字符串 JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象

String str = json.toString();//将json对象转换为字符串

完整代码如下:

[java]view plain copypackagebaz.parse; importjava.util.ArrayList; importjava.util.List; importnet.sf.json.JSON; importnet.sf.json.JSONArray; importnet.sf.json.JSONObject; importnet.sf.json.JSONSerializer; importbaz.bean.Person; publicclassParseJson{ privateStringjsonStr; publicParseJson(){ } publicParseJson(Stringstr){ this.jsonStr=str; } /** *解析json字符串 */ publicvoidparse(){ JSONObjectjsonObject=JSONObject.fromObject(jsonStr); Stringname=jsonObject.getString("name"); intnum=jsonObject.getInt("num"); Stringsex=jsonObject.getString("sex"); intage=jsonObject.getInt("age"); System.out.println(name+""+num+""+sex+""+age); } //将json字符串转换为java对象 publicPersonJSON2Object(){ //接收{}对象,此处接收数组对象会有异常 if(jsonStr.indexOf("[")!=-1){ jsonStr=jsonStr.replace("[",""); } if(jsonStr.indexOf("]")!=-1){ jsonStr=jsonStr.replace("]",""); } JSONObjectobj=newJSONObject().fromObject(jsonStr);//将json字符串转换为json对象 Personjb=(Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象 returnjb;//返回一个Person对象 }}

[java]view plain copypackagebaz.bean; publicclassPerson{ privateStringname; privateintnum; privateStringsex; privateintage; publicPerson(){ //TODOAuto-generatedconstructorstub } publicPerson(Stringname,intnum,Stringsex,intage){ super(); this.name=name; this.num=num; this.sex=sex; this.age=age; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetNum(){ returnnum; } publicvoidsetNum(intnum){ this.num=num; } publicStringgetSex(){ returnsex; } publicvoidsetSex(Stringsex){ this.sex=sex; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } }

将java对象转换为json字符串

[java]view plain copypackagebaz.cons;importnet.sf.json.JSONObject;/** *将java对象转换为json字符串 *@authorAdministrator * */ publicclassConsJson{ publicConsJson(){ //TODOAuto-generatedconstructorstub } publicStringObject2Json(Objectobj){ JSONObjectjson=JSONObject.fromObject(obj);//将java对象转换为json对象 Stringstr=json.toString();//将json对象转换为字符串 returnstr; } }

测试类:[java]view plain copypackagebaz.test; importjava.util.List; importbaz.bean.Person; importbaz.cons.ConsJson; importbaz.parse.ParseJson;publicclassTest{ publicstaticvoidmain(String[]args){ //将字符串转换为json对象,然后根据建得到相应的值 ParseJsonpj=newParseJson("{\"name\":\"gu\",\"num\":123456,\"sex\":\"male\",\"age\":24}"); pj.parse(); //将一个json字符串转换为java对象 Personp=pj.JSON2Object(); System.out.println("Name:"+p.getName()); System.out.println("Num:"+p.getNum()); System.out.println("Sex:"+p.getSex()); System.out.println("age:"+p.getAge()); //将一个java对象转换为Json字符串 Personp1=newPerson("gu1",123,"male",23); ConsJsoncj=newConsJson(); Stringstr1=cj.Object2Json(p1); System.out.println(str1); } } 测试输出如下:

gu 123456 male 24

Name:gu

Num:123456

Sex:male

age:24

{"age":23,"name":"gu1","num":123,"sex":"male"}

如果觉得《java对象与json对象间的相互转换》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。