详谈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;
}
publicListgetInterests(){
returninterests;
}
publicvoidsetInterests(Listinterests){
this.interests=interests;
}
classInterestBean{
privateStringinterest;
privateListcolors;
publicStringgetInterest(){
returninterest;
}
publicvoidsetInterest(Stringinterest){
this.interest=interest;
}
publicListgetColors(){
returncolors;
}
publicvoidsetColors(Listcolors){
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();
Listusers=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());
Listcolors=bean.getColors();
for(Stringcolor:colors){
System.out.println(color);
}
}
}
4、Map形式的JSON的GSON解析:
/**
*解析一个map类型的json
*/
publicvoidtestParseMapJson(){
Gsongson=newGson();
Typetype=newTypeToken
5、将一个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转换的几种形式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。