JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易于閱讀和編寫,同時也易于機器解析和生成。同XML一樣是一種“傳輸格式”。JSON采用與編程語言無關的文本格式,便于數據傳輸、存儲、交換。
封裝類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;}}另一個封裝類GsonDataAnalysis:
public class GsonDataAnalysis {private List<Attribute> list;public List<Attribute> getList() {return list;}public void setList(List<Attribute> list) {this.list = list;}}測試類Main方法:
/*** Gson解析json數據* @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號:" + gda.getList().get(i).getId() + " ");System.out.print("姓 名:" + gda.getList().get(i).getName() + " ");System.out.println("年 齡:" + gda.getList().get(i).getAge());}}}注:在使用Gson類的時候在工程中要添加Gson.jar包。
下面給大家介紹java 解析json格式數據
有時候可能會用到json格式進行數據的傳輸,那么怎么把接收到的數據解析出來呢? 下面介紹兩種解析json數據的方法:
1、通過谷歌的Gson來進行解析:
json數據:sTotalString = {"message":"success","result":[{"surveyid":"1","surveyname":"B"}{surveyid":"2","surveyname":"C"}]};
兩個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格式轉換成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////2System.out.print(surveyListVO.getResult().get(i).getSurveyName());print: B///CSystem.out.print(surveyListVO.getMessage());}}2、通過json-org.jar包進行解析:
json數據:sTotalString = {"message":"success","result":[{"surveyid":"1","surveyname":"B"}{surveyid":"2","surveyname":"C"}]};
一個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格式轉換成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();}}新聞熱點
疑難解答