fast-json.jar的使用方法

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
40
41
42
43
44
45
46
47
48
49
50
[
     {
         "id" : 6378 ,
         "title" : "test" ,
         "score" : 0 ,
         "description" : "test" ,
         "time" : 1411963174
     },
     {
         "id" : 6142 ,
         "title" : "微电影多角度拍摄技巧(三)" ,
         "score" : 0 ,
         "description" : "" ,
         "time" : 1411530850
     },
     {
         "id" : 6141 ,
         "title" : "微电影多角度拍摄技巧(一)" ,
         "score" : 0 ,
         "description" : "" ,
         "time" : 1411530835
     },
     {
         "id" : 6140 ,
         "title" : "微电影多角度拍摄技巧(二)" ,
         "score" : 0 ,
         "description" : "" ,
         "time" : 1411530552
     },
     {
         "id" : 4355 ,
         "title" : "施比受,更有福" ,
         "score" : 0 ,
         "description" : "一位老人用自己的一半时间去帮助他人,赠予帮助,收获快乐" ,
         "time" : 1411530082
     },
     {
         "id" : 4354 ,
         "title" : "父子时光之旅" ,
         "score" : 0 ,
         "description" : "当父亲老去,忙于生活的男人没有时间照顾体弱的父亲,于是,带上父亲上路吧,带他重走当年他走过无数遍的那段旅程" ,
         "time" : 1411529699
     }
]

对于这一种json数据,使用fastjson进行解析的时候,调用方法之前应该先写出其对应的bean.java(我想你已经做过了);上面的json数据对应的bean是这样的,

?
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
public class NewMoviesBean {
 
     private int id;
     private String title;
     private String img;
     private String score;
     private String description;
     private int time;
     public int getId() {
         return id;
     }
     public void setId( int id) {
         this .id = id;
     }
     public String getTitle() {
         return title;
     }
     public void setTitle(String title) {
         this .title = title;
     }
     public String getImg() {
         return img;
     }
     public void setImg(String img) {
         this .img = img;
     }
     public String getScore() {
         return score;
     }
     public void setScore(String score) {
         this .score = score;
     }
     public String getDescription() {
         return description;
     }
     public void setDescription(String description) {
         this .description = description;
     }
     public int getTime() {
         return time;
     }
     public void setTime( int time) {
         this .time = time;
     }
     public NewMoviesBean( int id, String title, String img, String score,
             String description, int time) {
         super ();
         this .id = id;
         this .title = title;
         this .img = img;
         this .score = score;
         this .description = description;
         this .time = time;
     }
     public NewMoviesBean() {
         super ();
     }
     @Override
     public String toString() {
         return "NewMoviesBean [id=" + id + ", title=" + title + ", img=" + img
                 + ", score=" + score + ", description=" + description
                 + ", time=" + time + "]" ;
     }
     
     
}


那么对应的解析方法是这样的:

?
1
JSON.parseArray(json, NewMoviesBean. class );
?
1
为甚么回事这种解析方式呢?因为,分析整个json数据的格式我们能发现,最外层是中括号 "[ ]" ,内侧是大括号 "{ }" ;中括号说明整个json数据为一个数组类型,其中的大括号说明是数组中的元素;说明整个就是一个JSONArray,JSONArray中元素又是一个个的JSONObject。

另一种的解析方式:json数据是这样的,

?
1
2
3
4
{ "type" : [
         "恐怖" ,
         "剧情"
     ]},

分析这种形式,大括号里面是小括号。也即是数组整体是通过键值对的形式呈现的。那么最外层就是一个JSONObject,KEY对应的就是JSONArray。应该这样:

?
1
2
3
4
5
JSONArray jsonArrayType = JSONObject.getJSONArray( "type" );
             String[] type = new String[jsonArrayType.size()];
             for ( int j = 0 ; j < jsonArrayType.size(); j++) {
                 type[j] = (String)jsonArrayType.get(j);
             }

这样就能够解析出想要的数据。

与上面类似的另一种解析:json数据是这样的:


这种形式,外层大括号里面是一个键KEY对应了另一个大括号元素,那么其最外层是一个JSONObject;内层KEY对应的也是一个JSONObject。

当然也可以先创建开一个bean:

?
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 MoviedefinitionBean {
 
     private String normalP;
     private String hightP;
     private String superP;
     public String getNormalP() {
         return normalP;
     }
     public void setNormalP(String normalP) {
         this .normalP = normalP;
     }
     public String getHightP() {
         return hightP;
     }
     public void setHightP(String hightP) {
         this .hightP = hightP;
     }
     public String getSuperP() {
         return superP;
     }
     public void setSuperP(String superP) {
         this .superP = superP;
     }
     public MoviedefinitionBean(String normalP, String hightP, String superP) {
         super ();
         this .normalP = normalP;
         this .hightP = hightP;
         this .superP = superP;
     }
     public MoviedefinitionBean() {
         super ();
     }
     @Override
     public String toString() {
         return "MoviedefinitionBean [normalP=" + normalP + ", hightP=" + hightP
                 + ", superP=" + superP + "]" ;
     }
     
}


然后对此做出解析:

?
1
2
3
4
5
JSONObject jsonObjectDefination = jsonObject.getJSONObject( "playurl" );
                 String normalP = jsonObjectDefination.getString( "360P" );
                 String hightP = jsonObjectDefination.getString( "480P" );
                 String superP = jsonObjectDefination.getString( "720P" );
                 playurl = new MoviedefinitionBean(normalP, hightP, superP);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值