重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
JSON格式的數(shù)據(jù)傳遞是最常用的方法之一,以下列出了常用的幾種形態(tài)以及與Javabean之間的轉(zhuǎn)換:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了市中免費(fèi)建站歡迎大家使用!
String json1="{'name':'zhangsan','age':23,'interests':[{'interest':'籃球','colors':['綠色','黃色']},{'interest':'足球','colors':['紅色','藍(lán)色']}]}"; 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}";
首先,此處的轉(zhuǎn)化依賴兩個(gè)JAR包
com.google.code.gson gson 2.8.1 org.json json 20170516
其次,封裝的Javabean代碼如下
import java.util.List; public class UserBean { private String name; private Integer age; private Listinterests; 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 getInterests() { return interests; } public void setInterests(List interests) { this.interests = interests; } class InterestBean{ private String interest; private List colors; public String getInterest() { return interest; } public void setInterest(String interest) { this.interest = interest; } public List getColors() { return colors; } public void setColors(List 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、數(shù)組形式的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數(shù)組 */ public void testParseListJson(){ Gson gson = new Gson(); Type type = new TypeToken>(){}.getType(); List
users = gson.fromJson(json2, type); for(UserBean user:users){ System.out.println(user.getName()); } }
3、內(nèi)嵌JSON形式的JSON與GSON解析:
/** * 內(nèi)嵌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); } }
/** * 內(nèi)嵌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()); Listlist = user.getInterests(); for(InterestBean bean:list) { System.out.println(bean.getInterest()); List colors = bean.getColors(); for(String color:colors){ System.out.println(color); } } }
4、Map形式的JSON的GSON解析:
/** * 解析一個(gè)map類型的json */ public void testParseMapJson(){ Gson gson = new Gson(); Type type = new TypeToken
5、將一個(gè)JavaBean對象封裝成JSON格式
/** * 將一個(gè)JavaBean對象封裝成JSON格式 */ public String testJavaBean2Json(){ UserBean userBean = new UserBean(); userBean.setName("zhangsan"); userBean.setAge(33); Listlist = new ArrayList (); 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轉(zhuǎn)換成Json Gson gson = new Gson(); String jsonStr = gson.toJson(userBean); System.out.println(jsonStr); return jsonStr; } }
僅供參考,如有雷同,純屬巧合^_^
以上這篇詳談JSON與Javabean轉(zhuǎn)換的幾種形式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持創(chuàng)新互聯(lián)。