详谈JSON与Javabean转换的几种形式
更新时间:2017年08月23日 08:28:25 投稿:jingxian
下面小编就为大家带来一篇详谈JSON与Javabean转换的几种形式。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
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转换的几种形式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
springboot异步处理@NotBlank或@NotNull注释校验不生效问题
这篇文章主要介绍了springboot异步处理@NotBlank或@NotNull注释校验不生效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01spring boot 加载web容器tomcat流程源码分析
本文章主要描述spring boot加载web容器 tomcat的部分,为了避免文章知识点过于分散,其他相关的如bean的加载,tomcat内部流程等不做深入讨论,具体内容详情跟随小编一起看看吧2021-06-06
最新评论