JSON格式的数据传递是最常用的方法之一,以下列出了常用的几种形态以及与Javabean之间的转换: String json1="{'name':'zhangsan','age':23,'interests ...
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包
1 <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> 2 <dependency> 3 <groupId>com.google.code.gson</groupId> 4 <artifactId>gson</artifactId> 5 <version>2.8.1</version> 6 </dependency> 7 <!-- https://mvnrepository.com/artifact/org.json/json --> 8 <dependency> 9 <groupId>org.json</groupId>10 <artifactId>json</artifactId>11 <version>20170516</version>12 </dependency>
View Code
其次,封装的Javabean代码如下
1 import java.util.List; 2 3 public class UserBean { 4 5 private String name; 6 7 private Integer age; 8 9 private List<InterestBean> interests;10 11 public String getName() {12 return name;13 }14 15 public void setName(String name) {16 this.name = name;17 }18 19 public Integer getAge() {20 return age;21 }22 23 public void setAge(Integer age) {24 this.age = age;25 }26 27 28 29 30 public List<InterestBean> getInterests() {31 return interests;32 }33 34 public void setInterests(List<InterestBean> interests) {35 this.interests = interests;36 }37 38 39 40 41 class InterestBean{42 private String interest;43 44 private List<String> colors;45 46 public String getInterest() {47 return interest;48 }49 50 public void setInterest(String interest) {51 this.interest = interest;52 }53 54 public List<String> getColors() {55 return colors;56 }57 58 public void setColors(List<String> colors) {59 this.colors = colors;60 }61 62 63 }64 65 }
View Code
1、普通的json4格式的JSON解析:
1 public void testParseJson(){ 2 3 JSONObject jsonObj = new JSONObject(json4); 4 String name = jsonObj.getString("name"); 5 int age = jsonObj.getInt("age"); 6 System.out.println(name); 7 System.out.println(age); 8 UserBean user = new UserBean(); 9 user.setAge(age);10 user.setName(name);11 12 }
View Code
2、数组形式的JSON解析以及GSON解析:
1 public void testJsonArray(){2 JSONArray jsonArray = new JSONArray(json2);3 for (int i = 0; i < jsonArray.length(); i++) {4 JSONObject jsonObj = jsonArray.getJSONObject(i);5 String name = jsonObj.getString("name");6 System.out.println(name);7 8 }9 }
View Code
1 /** 2 * 解析json数组 3 */ 4 public void testParseListJson(){ 5 Gson gson = new Gson(); 6 Type type = new TypeToken<List<UserBean>>(){}.getType(); 7 List<UserBean> users = gson.fromJson(json2, type); 8 for(UserBean user:users){ 9 System.out.println(user.getName());10 }11 }
View Code
3、内嵌JSON形式的JSON与GSON解析:
1 /** 2 * 内嵌JSON解析 3 */ 4 public void testParseJson1(){ 5 JSONObject rootJson = new JSONObject(json1); 6 JSONArray jsonInterestArray = rootJson.getJSONArray("interests"); 7 for (int i = 0; i < jsonInterestArray.length(); i++) { 8 JSONObject interestJsonObj = jsonInterestArray.getJSONObject(i); 9 String interest = interestJsonObj.getString("interest");10 System.out.println(interest);11 Object obj = interestJsonObj.get("colors");12 System.out.println(obj);13 }14 }
View Code
1 /** 2 * 内嵌GSON解析 3 */ 4 public void testSimpleJson(){ 5 Gson gson = new Gson(); 6 UserBean user = gson.fromJson(json1, UserBean.class); 7 System.out.println(user.getName()); 8 System.out.println(user.getAge()); 9 System.out.println(user.getInterests().size());10 List<InterestBean> list = user.getInterests();11 for(InterestBean bean:list) {12 System.out.println(bean.getInterest());13 List<String> colors = bean.getColors();14 for(String color:colors){15 System.out.println(color);16 }17 }18 }
View Code
4、Map形式的JSON的GSON解析:
1 /** 2 * 解析一个map类型的json 3 */ 4 public void testParseMapJson(){ 5 Gson gson = new Gson(); 6 Type type = new TypeToken<Map<String,UserBean>>(){}.getType(); 7 Map<String,UserBean> map = gson.fromJson(json3, type); 8 Set<String> keys = map.keySet(); 9 for(String key:keys){10 UserBean bean = map.get(key);11 System.out.println(key);12 System.out.println(bean.getName());13 }14 }
View Code
5、将一个JavaBean对象封装成JSON格式
1 /** 2 * 将一个JavaBean对象封装成JSON格式 3 */ 4 public String testJavaBean2Json(){ 5 UserBean userBean = new UserBean(); 6 userBean.setName("zhangsan"); 7 userBean.setAge(33); 8 List<InterestBean> list = new ArrayList<InterestBean>(); 9 InterestBean bean1 = new UserBean().new InterestBean();10 bean1.setInterest("篮球1");11 InterestBean bean2 = new UserBean().new InterestBean();12 bean2.setInterest("篮球2");13 list.add(bean1);14 list.add(bean2);15 userBean.setInterests(list);16 //将User Bean转换成Json17 Gson gson = new Gson();18 String jsonStr = gson.toJson(userBean);19 System.out.println(jsonStr);20 return jsonStr;21 }22 23 }
View Code
仅供参考,如有雷同,纯属巧合^_^
原标题:JSON与Javabean转换的几种形式
关键词:JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。