Json解析与Gson解析_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Json解析与Gson解析

Json解析与Gson解析

 2017/9/3 23:08:47  何叫兽  程序员俱乐部  我要评论(0)
  • 摘要:本文主要介绍json最原始的解析与google提供的gson工具类解析①json解析1/**2*普通的json解析3*@params4*@throwsJSONException5*/6privatevoidjsonJieXi(Strings)throwsJSONException{7//创建json对象8JSONObjectjsonObject1=newJSONObject(s);9Stringretcode=jsonObject1.getString("retcode")
  • 标签:JSON 解析 JS

  本文主要介绍json最原始的解析与google提供的gson工具类解析

 ①json解析

 1 /**
 2      * 普通的json解析
 3      * @param s
 4      * @throws JSONException
 5      */
 6     private void jsonJieXi(String s) throws JSONException {
 7         //创建json对象
 8         JSONObject jsonObject1 = new JSONObject(s);
 9         String retcode = jsonObject1.getString("retcode");
10         String header = jsonObject1.getString("header");
11         Log.i(TAG, "retcode=" + retcode + "----------header=" + header);
12 
13         JSONArray data = jsonObject1.getJSONArray("data");
14 
15         for (int i = 0; i < data.length(); i++) {
16             JSONObject obj = (JSONObject) data.get(i);
17             String ids = (String) obj.get("id");
18             String title = (String) obj.get("title");
19             String type = (String) obj.get("type");
20             String des = (String) obj.get("des");
21             Log.i(TAG, "ids=" + ids + "--title=" + title + "--type=" + type + "--des=" + des + "\n");
22         }
23     }

  ②gson解析

  1)首先在AndroidStudio中安装一个GsonFormat插件

 

  

  2)新建一个javaben类然后按下组合键alt+insert                  把完整的json数据拷贝到编辑框中 

  

 

  3)添加gson的依赖包

  

 

  4)然后生成Gson指定格式的java ben

  

 1 import java.util.List;
 2 
 3 /**
 4  * 作者:AdminHeJun.
 5  * 时间:2017/9/3 19:28.
 6  * 邮箱:1270960250@qq.com
 7  * 内容:
 8  * 修改:
 9  */
10 
11 public class NewsInfo {
12 
13 
14     private int retcode;
15     private String header;
16     private List<DataBean> data;
17 
18     public int getRetcode() {
19         return retcode;
20     }
21 
22     public void setRetcode(int retcode) {
23         this.retcode = retcode;
24     }
25 
26     public String getHeader() {
27         return header;
28     }
29 
30     public void setHeader(String header) {
31         this.header = header;
32     }
33 
34     public List<DataBean> getData() {
35         return data;
36     }
37 
38     public void setData(List<DataBean> data) {
39         this.data = data;
40     }
41 
42     public static class DataBean {
43         /**
44          * id : 10000
45          * title : 新闻
46          * type : 1
47          * des : 这是一条有内涵的新闻1111
48          */
49 
50         private int id;
51         private String title;
52         private int type;
53         private String des;
54 
55         public int getId() {
56             return id;
57         }
58 
59         public void setId(int id) {
60             this.id = id;
61         }
62 
63         public String getTitle() {
64             return title;
65         }
66 
67         public void setTitle(String title) {
68             this.title = title;
69         }
70 
71         public int getType() {
72             return type;
73         }
74 
75         public void setType(int type) {
76             this.type = type;
77         }
78 
79         public String getDes() {
80             return des;
81         }
82 
83         public void setDes(String des) {
84             this.des = des;
85         }
86 
87         @Override
88         public String toString() {
89             return "DataBean{" +
90                     "id=" + id +
91                     ", title='" + title + '\'' +
92                     ", type=" + type +
93                     ", des='" + des + '\'' +
94                     '}';
95         }
96     }
97 
98 }

 

 

 

  4)接下来就是使用gson解析啦

  

 1 /**
 2      * gson解析json数据
 3      *
 4      * @param s
 5      */
 6     private void gsonUtil(String s) {
 7         //创建一个gson对象
 8         Gson gson = new Gson();
 9         //解析json数据
10         NewsInfo newsInfo = gson.fromJson(s, NewsInfo.class);
11 
12         String header = newsInfo.getHeader();
13         int retcode = newsInfo.getRetcode();
14 
15         Log.i(TAG, "retcode=" + retcode + "----------header=" + header);
16         
17         //得到data数据的集合
18         List<NewsInfo.DataBean> data = newsInfo.getData();
19 
20         Log.i(TAG, "data------->" + data.toString());
21     }

打印结果

1 retcode=200----------header=http://192.168.126.26:8080/news/a.jpg
2 
3 
4 
5 data------->[DataBean{id=10000, title='新闻', type=1, des='这是一条有内涵的新闻1111'},
DataBean{id=10002, title='专题', type=10, des='这是一条有内涵的新闻222222'},
DataBean{id=10003, title='组图2', type=2, des='这是一条有内涵的新闻333333'},
DataBean{id=10006, title='组图4', type=2, des='这是一条有内涵的新闻333333'},
DataBean{id=10008, title='组图5', type=2, des='这是一条有内涵的新闻333333'},
DataBean{id=10003, title='组图6', type=2, des='这是一条有内涵的新闻ddddd33'},
DataBean{id=10003, title='组图7', type=2, des='这是一条有内涵的新闻3ssss33333'},
DataBean{id=10003, title='组图8', type=2, des='这是一条有内涵的新闻33dddd33333'},
DataBean{id=10004, title='互动', type=3, des='这是一条有内涵的新闻444444'}]

最后贴上原始的json数据

 1 {
 2     "retcode": 200,
 3     "data": [
 4         {
 5             "id": 10000,
 6             "title": "新闻",
 7             "type": 1,
 8         "des":"这是一条有内涵的新闻1111"        
 9         },
10         {
11             "id": 10002,
12             "title": "专题",
13             "type": 10,
14             "des":"这是一条有内涵的新闻222222"    
15         },
16         {
17             "id": 10003,
18             "title": "组图2",
19             "type": 2,
20             "des":"这是一条有内涵的新闻333333"    
21         },
22      {
23             "id": 10006,
24             "title": "组图4",
25             "type": 2,
26             "des":"这是一条有内涵的新闻333333"    
27         },
28      {
29             "id": 10008,
30             "title": "组图5",
31             "type": 2,
32             "des":"这是一条有内涵的新闻333333"    
33         },
34      {
35             "id": 10003,
36             "title": "组图6",
37             "type": 2,
38             "des":"这是一条有内涵的新闻ddddd33"    
39         },
40      {
41             "id": 10003,
42             "title": "组图7",
43             "type": 2,
44             "des":"这是一条有内涵的新闻3ssss33333"    
45         },
46      {
47             "id": 10003,
48             "title": "组图8",
49             "type": 2,
50             "des":"这是一条有内涵的新闻33dddd33333"    
51         },
52         {
53             "id": 10004,
54             "title": "互动",
55             "type": 3,
56              "des":"这是一条有内涵的新闻444444"    
57         }
58     ],
59     "header":"http://192.168.126.26:8080/news/a.jpg"
60     
61     
62 }

好啦操作到此结束

上一篇: Android开发中常用的ListView列表的优化方式ViewHolder 下一篇: 没有下一篇了!
发表评论
用户名: 匿名