JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易于閱讀和編寫,同時也易于機器解析和生成。同XML一樣是一種“傳輸格式”。JSON采用與編程語言無關的文本格式,便于數據傳輸、存儲、交換。
封裝類Attribute:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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:
1
2
3
4
5
6
7
8
9
|
public class GsonDataAnalysis { private List<Attribute> list; public List<Attribute> getList() { return list; } public void setList(List<Attribute> list) { this .list = list; } } |
測試類Main方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/** * 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類:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
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類型:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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包進行解析:
json數據:sTotalString = {"message":"success","result":[{"surveyid":"1","surveyname":"B"}{surveyid":"2","surveyname":"C"}]};
一個VO類:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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類型:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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(); } } |