java对象与json对象间的相互转换的方法
工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载。
点击下载
1.简单的解析json字符串
首先将json字符串转换为json对象,然后再解析json对象,过程如下。
JSONObjectjsonObject=JSONObject.fromObject(jsonStr);
根据json中的键得到它的值
Stringname=jsonObject.getString("name"); intnum=jsonObject.getInt("num"); Stringsex=jsonObject.getString("sex"); intage=jsonObject.getInt("age");
2.将json字符串转换为java对象
同样先将json字符串转换为json对象,再将json对象转换为java对象,如下所示。
JSONObjectobj=newJSONObject().fromObject(jsonStr); //将json字符串转换为json对象
将json对象转换为java对象
Personjb=(Person)JSONObject.toBean(obj,Person.class); //将建json对象转换为Person对象
3.将java对象转换为json字符串
先将java对象转换为json对象,在将json对象转换为json字符串
JSONObjectjson=JSONObject.fromObject(obj); //将java对象转换为json对象 Stringstr=json.toString();//将json对象转换为字符串
完整代码如下:
packagebaz.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对象 } }
packagebaz.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字符串
packagebaz.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; } }
测试类:
packagebaz.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); } }
测试输出如下:
gu123456male24
Name:gu
Num:123456
Sex:male
age:24
{"age":23,"name":"gu1","num":123,"sex":"male"}
这只是最简单使用方法,其他的使用我会在后期中更新。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。