JSON格式的数据传递是最常用的方法之一,以下列出了常用的几种形态以及与Javabean之间的转换:
String json1="{'name':'zhangsan','age':23,'interests':[{'interest':'篮球','colors':['绿色','黄色']},{'interest':'足球','colors':['红色','蓝色']}]}";
String json2="[{'name':'zhangsan'},{'name':'lisi'},{'name':'王五'}]";
String json3="{'1':{'name':'zhangsan'},'3':{'name':'lisi'},'4':{'name':'wangwu'}}";//map
String json4="{'name':'zhangsan','age':23}";
首先,此处的转化依赖两个JAR包
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.json/json --> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20170516</version> </dependency>
其次,封装的Javabean代码如下
import java.util.List;
public class UserBean {
private String name;
private Integer age;
private List<InterestBean> interests;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public List<InterestBean> getInterests() {
return interests;
}
public void setInterests(List<InterestBean> interests) {
this.interests = interests;
}
class InterestBean{
private String interest;
private List<String> colors;
public String getInterest() {
return interest;
}
public void setInterest(String interest) {
this.interest = interest;
}
public List<String> getColors() {
return colors;
}
public void setColors(List<String> colors) {
this.colors = colors;
}
}
}
1、普通的json4格式的JSON解析:
public void testParseJson(){
JSONObject jsonObj = new JSONObject(json4);
String name = jsonObj.getString("name");
int age = jsonObj.getInt("age");
System.out.println(name);
System.out.println(age);
UserBean user = new UserBean();
user.setAge(age);
user.setName(name);
}
2、数组形式的JSON解析以及GSON解析:
public void testJsonArray(){
JSONArray jsonArray = new JSONArray(json2);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObj = jsonArray.getJSONObject(i);
String name = jsonObj.getString("name");
System.out.println(name);
}
}
/**
* 解析json数组
*/
public void testParseListJson(){
Gson gson = new Gson();
Type type = new TypeToken<List<UserBean>>(){}.getType();
List<UserBean> users = gson.fromJson(json2, type);
for(UserBean user:users){
System.out.println(user.getName());
}
}
3、内嵌JSON形式的JSON与GSON解析:
/**
* 内嵌JSON解析
*/
public void testParseJson1(){
JSONObject rootJson = new JSONObject(json1);
JSONArray jsonInterestArray = rootJson.getJSONArray("interests");
for (int i = 0; i < jsonInterestArray.length(); i++) {
JSONObject interestJsonObj = jsonInterestArray.getJSONObject(i);
String interest = interestJsonObj.getString("interest");
System.out.println(interest);
Object obj = interestJsonObj.get("colors");
System.out.println(obj);
}
}
/**
* 内嵌GSON解析
*/
public void testSimpleJson(){
Gson gson = new Gson();
UserBean user = gson.fromJson(json1, UserBean.class);
System.out.println(user.getName());
System.out.println(user.getAge());
System.out.println(user.getInterests().size());
List<InterestBean> list = user.getInterests();
for(InterestBean bean:list) {
System.out.println(bean.getInterest());
List<String> colors = bean.getColors();
for(String color:colors){
System.out.println(color);
}
}
}
4、Map形式的JSON的GSON解析:
/**
* 解析一个map类型的json
*/
public void testParseMapJson(){
Gson gson = new Gson();
Type type = new TypeToken<Map<String,UserBean>>(){}.getType();
Map<String,UserBean> map = gson.fromJson(json3, type);
Set<String> keys = map.keySet();
for(String key:keys){
UserBean bean = map.get(key);
System.out.println(key);
System.out.println(bean.getName());
}
}
5、将一个JavaBean对象封装成JSON格式
/**
* 将一个JavaBean对象封装成JSON格式
*/
public String testJavaBean2Json(){
UserBean userBean = new UserBean();
userBean.setName("zhangsan");
userBean.setAge(33);
List<InterestBean> list = new ArrayList<InterestBean>();
InterestBean bean1 = new UserBean().new InterestBean();
bean1.setInterest("篮球1");
InterestBean bean2 = new UserBean().new InterestBean();
bean2.setInterest("篮球2");
list.add(bean1);
list.add(bean2);
userBean.setInterests(list);
//将User Bean转换成Json
Gson gson = new Gson();
String jsonStr = gson.toJson(userBean);
System.out.println(jsonStr);
return jsonStr;
}
}
仅供参考,如有雷同,纯属巧合^_^
以上这篇详谈JSON与Javabean转换的几种形式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# javabean转换成json
# Java中json与javaBean几种互转的讲解
# 常用json与javabean互转的方法实现
# java Bean与json对象间的转换实例讲解
# 关于json序列化(javaBean转Json的细节处理)
# 内嵌
# 给大家
# 几种
# 如有
# 希望能
# 这篇
# 转换成
# 小编
# 最常用
# 大家多多
# 仅供参考
# 王五
# json
# org
# java
# import
# dependency
# gt
# Integer
# groupId
相关文章:
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
,网页ppt怎么弄成自己的ppt?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
建站之星如何快速更换网站模板?
深圳网站制作培训,深圳哪些招聘网站比较好?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
如何用免费手机建站系统零基础打造专业网站?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
nginx修改上传文件大小限制的方法
网站制作员失业,怎样查看自己网站的注册者?
建站主机选哪家性价比最高?
C++如何使用std::optional?(处理可选值)
制作企业网站建设方案,怎样建设一个公司网站?
香港服务器租用费用高吗?如何避免常见误区?
如何快速完成中国万网建站详细流程?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
专业网站建设制作报价,网页设计制作要考什么证?
如何在IIS服务器上快速部署高效网站?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
建站之星价格显示格式升级,你的预算足够吗?
如何通过FTP空间快速搭建安全高效网站?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
济南专业网站制作公司,济南信息工程学校怎么样?
如何在新浪SAE免费搭建个人博客?
设计网站制作公司有哪些,制作网页教程?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
建站主机服务器选购指南:轻量应用与VPS配置解析
相册网站制作软件,图片上的网址怎么复制?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
太平洋网站制作公司,网络用语太平洋是什么意思?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
建站主机功能解析:服务器选择与快速搭建指南
如何正确下载安装西数主机建站助手?
建站为何优先选择香港服务器?
招商网站制作流程,网站招商广告语?
如何在IIS中新建站点并配置端口与物理路径?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
网站制作价目表怎么做,珍爱网婚介费用多少?
北京的网站制作公司有哪些,哪个视频网站最好?
建站主机默认首页配置指南:核心功能与访问路径优化
建站之星北京办公室:智能建站系统与小程序生成方案解析
如何在景安服务器上快速搭建个人网站?
网站制作的步骤包括,正确网址格式怎么写?
定制建站策划方案_专业建站与网站建设方案一站式指南
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何快速上传建站程序避免常见错误?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何通过.red域名打造高辨识度品牌网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。