JAVA使用Gson解析json數(shù)據(jù)實(shí)例解析
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。同XML一樣是一種“傳輸格式”。JSON采用與編程語言無關(guān)的文本格式,便于數(shù)據(jù)傳輸、存儲(chǔ)、交換。
封裝類Attribute:
public class Attribute { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
另一個(gè)封裝類GsonDataAnalysis:
public class GsonDataAnalysis { private List<Attribute> list; public List<Attribute> getList() { return list; } public void setList(List<Attribute> list) { this.list = list; } }
測(cè)試類Main方法:
/** * Gson解析json數(shù)據(jù) * @author ForeverLover * @version 2015-04-19 */ public class GsonTest { public static void main(String[] args) { String sTotalString = "{\"list\": [" + "{\"id\":\"1\",\"name\":\"Tom\",\"age\":\"12\"}," + "{\"id\":\"2\",\"name\":\"Marry\",\"age\":\"18\"}" + "]}"; Gson gson = new Gson(); GsonDataAnalysis gda = gson.fromJson( sTotalString, GsonDataAnalysis.class); for(int i = 0; i < gda.getList().size(); i ++) { System.out.print("ID號(hào):" + gda.getList().get(i).getId() + " "); System.out.print("姓 名:" + gda.getList().get(i).getName() + " "); System.out.println("年 齡:" + gda.getList().get(i).getAge()); } } }
注:在使用Gson類的時(shí)候在工程中要添加Gson.jar包。
下面給大家介紹java 解析json格式數(shù)據(jù)
有時(shí)候可能會(huì)用到j(luò)son格式進(jìn)行數(shù)據(jù)的傳輸,那么怎么把接收到的數(shù)據(jù)解析出來呢? 下面介紹兩種解析json數(shù)據(jù)的方法:
1、通過谷歌的Gson來進(jìn)行解析:
json數(shù)據(jù):sTotalString = {"message":"success","result":[{"surveyid":"1","surveyname":"B"}{surveyid":"2","surveyname":"C"}]};
兩個(gè)VO類:
public class SurveyVO { private String surveyId; private String surveyName; private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getSurveyId() { return surveyId; } public void setSurveyId(String surveyId) { this.surveyId = surveyId; } public String getSurveyName() { return surveyName; } public void setSurveyName(String surveyName) { this.surveyName = surveyName; } } public class SurveyListVO { private String message; private List<SurveyVO> result; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public List<SurveyVO> getResult() { return result; } public void setResult(List<SurveyVO> result) { this.result = result; } }
json格式轉(zhuǎn)換成object類型:
public class fromGson() { sTotalString = {"message":"success","result":[{"surveyid":"1","surveyname":"B"}{"surveyid":"2","surveyname":"C"}]}; Gson gson = new Gson(); SurveyListVO surveyListVO = gson.fromJson(sTotalString, SurveyListVO.class); for (int i = 0; i < surveyListVO.getResult().size(); i++) { System.out.print(surveyListVO.getResult().get(i) .getSurveyId()); print: 1////2 System.out.print(surveyListVO.getResult().get(i) .getSurveyName()); print: B///C System.out.print(surveyListVO.getMessage()); } }
2、通過json-org.jar包進(jìn)行解析:
json數(shù)據(jù):sTotalString = {"message":"success","result":[{"surveyid":"1","surveyname":"B"}{surveyid":"2","surveyname":"C"}]};
一個(gè)VO類:
public class SurveyVO { private String surveyId; private String surveyName; public String getSurveyId() { return surveyId; } public void setSurveyId(String surveyId) { this.surveyId = surveyId; } public String getSurveyName() { return surveyName; } public void setSurveyName(String surveyName) { this.surveyName = surveyName; } }
json格式轉(zhuǎn)換成object類型:
public class fromJson() { sTotalString = {"message":"success","result":[{"surveyid":"1","surveyname":"B"}{"surveyid":"2","surveyname":"C"}]}; JSONObject json; try { json = new JSONObject(sTotalString); JSONArray results = json.getJSONArray("result"); for (int i = 0; i < results.length(); i++) { SurveyVO surveyVO = new SurveyVO(); JSONObject result = results.getJSONObject(i); System.out.println(result.getString("surveyId")+" "+result.getString("surveyName")); surveyVO.setSurveyId(result.getString("surveyId")); surveyVO.setSurveyName(result.getString("surveyName")); surveyVOList.add(surveyVO); } } catch (JSONException e) { e.printStackTrace(); } }
相關(guān)文章
關(guān)于jdk9、jdk10、jdk11、jdk12、jdk13新特性說明
這篇文章主要介紹了關(guān)于jdk9、jdk10、jdk11、jdk12、jdk13新特性說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Java隨手筆記8之包、環(huán)境變量和訪問控制及maven profile實(shí)現(xiàn)多環(huán)境打包
這篇文章主要介紹了Java隨手筆記8之包、環(huán)境變量和訪問控制及maven profile實(shí)現(xiàn)多環(huán)境打包的相關(guān)資料,需要的朋友可以參考下2015-11-11springboot配置文件中使用${}注入值的兩種方式小結(jié)
這篇文章主要介紹了springboot配置文件中使用${}注入值的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Java實(shí)現(xiàn)文件夾中內(nèi)容定時(shí)刪除
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)文件夾中內(nèi)容定時(shí)刪除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08spring boot請(qǐng)求異常處理并返回對(duì)應(yīng)的html頁面
這篇文章主要介紹了spring boot處理請(qǐng)求異常并返回對(duì)應(yīng)的html頁面,包括404異常處理和500異常處理,需要的朋友可以參考下2017-07-07深入了解Java線程池:從設(shè)計(jì)思想到源碼解讀
這篇文章將從設(shè)計(jì)思想到源碼解讀,帶大家深入了解Java的線程池,文中的示例代碼講解詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的可以參考一下2021-12-12