详谈JSON与Javabean转换的几种形式
JSON格式的数据传递是最常用的方法之一,以下列出了常用的几种形态以及与Javabean之间的转换:
Stringjson1="{'name':'zhangsan','age':23,'interests':[{'interest':'篮球','colors':['绿色','黄色']},{'interest':'足球','colors':['红色','蓝色']}]}"; Stringjson2="[{'name':'zhangsan'},{'name':'lisi'},{'name':'王五'}]"; Stringjson3="{'1':{'name':'zhangsan'},'3':{'name':'lisi'},'4':{'name':'wangwu'}}";//map Stringjson4="{'name':'zhangsan','age':23}";
首先,此处的转化依赖两个JAR包
com.google.code.gson gson 2.8.1 org.json json 20170516
其次,封装的Javabean代码如下
importjava.util.List; publicclassUserBean{ privateStringname; privateIntegerage; privateListinterests; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicIntegergetAge(){ returnage; } publicvoidsetAge(Integerage){ this.age=age; } publicList getInterests(){ returninterests; } publicvoidsetInterests(List interests){ this.interests=interests; } classInterestBean{ privateStringinterest; privateList colors; publicStringgetInterest(){ returninterest; } publicvoidsetInterest(Stringinterest){ this.interest=interest; } publicList getColors(){ returncolors; } publicvoidsetColors(List colors){ this.colors=colors; } } }
1、普通的json4格式的JSON解析:
publicvoidtestParseJson(){ JSONObjectjsonObj=newJSONObject(json4); Stringname=jsonObj.getString("name"); intage=jsonObj.getInt("age"); System.out.println(name); System.out.println(age); UserBeanuser=newUserBean(); user.setAge(age); user.setName(name); }
2、数组形式的JSON解析以及GSON解析:
publicvoidtestJsonArray(){ JSONArrayjsonArray=newJSONArray(json2); for(inti=0;i /** *解析json数组 */ publicvoidtestParseListJson(){ Gsongson=newGson(); Typetype=newTypeToken>(){}.getType(); List
users=gson.fromJson(json2,type); for(UserBeanuser:users){ System.out.println(user.getName()); } } 3、内嵌JSON形式的JSON与GSON解析:
/** *内嵌JSON解析 */ publicvoidtestParseJson1(){ JSONObjectrootJson=newJSONObject(json1); JSONArrayjsonInterestArray=rootJson.getJSONArray("interests"); for(inti=0;i /** *内嵌GSON解析 */ publicvoidtestSimpleJson(){ Gsongson=newGson(); UserBeanuser=gson.fromJson(json1,UserBean.class); System.out.println(user.getName()); System.out.println(user.getAge()); System.out.println(user.getInterests().size()); Listlist=user.getInterests(); for(InterestBeanbean:list){ System.out.println(bean.getInterest()); List colors=bean.getColors(); for(Stringcolor:colors){ System.out.println(color); } } } 4、Map形式的JSON的GSON解析:
/** *解析一个map类型的json */ publicvoidtestParseMapJson(){ Gsongson=newGson(); Typetype=newTypeToken5、将一个JavaBean对象封装成JSON格式
/** *将一个JavaBean对象封装成JSON格式 */ publicStringtestJavaBean2Json(){ UserBeanuserBean=newUserBean(); userBean.setName("zhangsan"); userBean.setAge(33); Listlist=newArrayList (); InterestBeanbean1=newUserBean().newInterestBean(); bean1.setInterest("篮球1"); InterestBeanbean2=newUserBean().newInterestBean(); bean2.setInterest("篮球2"); list.add(bean1); list.add(bean2); userBean.setInterests(list); //将UserBean转换成Json Gsongson=newGson(); StringjsonStr=gson.toJson(userBean); System.out.println(jsonStr); returnjsonStr; } } 仅供参考,如有雷同,纯属巧合^_^
以上这篇详谈JSON与Javabean转换的几种形式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。