fast-json.jar 解析json数据:一种json数据解析方式是这样的,点击这里下载jsonfast.jar+fastjsonAPI文档
- [
- {
- "id": 6378,
- "title": "test",
- "img": "http://image.jxvdy.com/2014/0929/5428d91c9e6dc8f78fd99_0.png",
- "score": 0,
- "description": "test",
- "time": 1411963174
- },
- {
- "id": 6142,
- "title": "微电影多角度拍摄技巧(三)",
- "img": "http://image.jxvdy.com/old/201409/24/11-54-15-17-1531.jpg",
- "score": 0,
- "description": "",
- "time": 1411530850
- },
- {
- "id": 6141,
- "title": "微电影多角度拍摄技巧(一)",
- "img": "http://image.jxvdy.com/old/201409/24/11-54-04-89-1531.jpg",
- "score": 0,
- "description": "",
- "time": 1411530835
- },
- {
- "id": 6140,
- "title": "微电影多角度拍摄技巧(二)",
- "img": "http://image.jxvdy.com/old/201409/24/11-49-54-18-1531.jpg",
- "score": 0,
- "description": "",
- "time": 1411530552
- },
- {
- "id": 4355,
- "title": "施比受,更有福",
- "img": "http://image.jxvdy.com/old/201409/24/11-46-06-65-3.jpg",
- "score": 0,
- "description": "一位老人用自己的一半时间去帮助他人,赠予帮助,收获快乐",
- "time": 1411530082
- },
- {
- "id": 4354,
- "title": "父子时光之旅",
- "img": "http://image.jxvdy.com/old/201409/24/11-35-13-81-3.jpg",
- "score": 0,
- "description": "当父亲老去,忙于生活的男人没有时间照顾体弱的父亲,于是,带上父亲上路吧,带他重走当年他走过无数遍的那段旅程",
- "time": 1411529699
- }
- ]
[
{
"id": 6378,
"title": "test",
"img": "http://image.jxvdy.com/2014/0929/5428d91c9e6dc8f78fd99_0.png",
"score": 0,
"description": "test",
"time": 1411963174
},
{
"id": 6142,
"title": "微电影多角度拍摄技巧(三)",
"img": "http://image.jxvdy.com/old/201409/24/11-54-15-17-1531.jpg",
"score": 0,
"description": "",
"time": 1411530850
},
{
"id": 6141,
"title": "微电影多角度拍摄技巧(一)",
"img": "http://image.jxvdy.com/old/201409/24/11-54-04-89-1531.jpg",
"score": 0,
"description": "",
"time": 1411530835
},
{
"id": 6140,
"title": "微电影多角度拍摄技巧(二)",
"img": "http://image.jxvdy.com/old/201409/24/11-49-54-18-1531.jpg",
"score": 0,
"description": "",
"time": 1411530552
},
{
"id": 4355,
"title": "施比受,更有福",
"img": "http://image.jxvdy.com/old/201409/24/11-46-06-65-3.jpg",
"score": 0,
"description": "一位老人用自己的一半时间去帮助他人,赠予帮助,收获快乐",
"time": 1411530082
},
{
"id": 4354,
"title": "父子时光之旅",
"img": "http://image.jxvdy.com/old/201409/24/11-35-13-81-3.jpg",
"score": 0,
"description": "当父亲老去,忙于生活的男人没有时间照顾体弱的父亲,于是,带上父亲上路吧,带他重走当年他走过无数遍的那段旅程",
"time": 1411529699
}
]
对于这一种json数据,使用fastjson进行解析的时候,调用方法之前应该先写出其对应的bean.java(我想你已经做过了);上面的json数据对应的bean是这样的,
- 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 + "]";
- }
- }
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 + "]";
}
}
那么对应的解析方法是这样的:
- JSON.parseArray(json, NewMoviesBean.class);
JSON.parseArray(json, NewMoviesBean.class);
- 为甚么回事这种解析方式呢?因为,分析整个json数据的格式我们能发现,最外层是中括号"[ ]",内侧是大括号"{ }";中括号说明整个json数据为一个数组类型,其中的大括号说明是数组中的元素;说明整个就是一个JSONArray,JSONArray中元素又是一个个的JSONObject。
为甚么回事这种解析方式呢?因为,分析整个json数据的格式我们能发现,最外层是中括号"[ ]",内侧是大括号"{ }";中括号说明整个json数据为一个数组类型,其中的大括号说明是数组中的元素;说明整个就是一个JSONArray,JSONArray中元素又是一个个的JSONObject。
另一种的解析方式:json数据是这样的,
- {"type": [
- "恐怖",
- "剧情"
- ]},
{"type": [
"恐怖",
"剧情"
]},
分析这种形式,大括号里面是小括号。也即是数组整体是通过键值对的形式呈现的。那么最外层就是一个JSONObject,KEY对应的就是JSONArray。应该这样:
- 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);
- }
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数据是这样的:
- {
- "playurl": {
- "360P": "http://v.jxvdy.com/sendfile/V7bzjsH5sIZlBzVG7t7qbL1u-y1_k6E0DCtzyZ8iv-pRF3GmewWOj-HQ_grNppGnnx_rRHb-bztNWAvzGQ",
- "480P": "http://v.jxvdy.com/sendfile/V7bzjsH5sIZlBzVG7t7qbL1u-y1_k6E0DCtzyZ8iv-pRF3GmewWOj-HQ_grNppGnnx_rRHb-bztNWAvzGT",
- "720P": "http://v.jxvdy.com/sendfile/V7bzjsH5sIZlBzVG7t7qbL1u-y1_k6E0DCtzyZ8iv-pRF3GmewWOj-HQ_grNppGnnx_rRHb-bztNWAvzGZ"
- }
- }
{
"playurl": {
"360P": "http://v.jxvdy.com/sendfile/V7bzjsH5sIZlBzVG7t7qbL1u-y1_k6E0DCtzyZ8iv-pRF3GmewWOj-HQ_grNppGnnx_rRHb-bztNWAvzGQ",
"480P": "http://v.jxvdy.com/sendfile/V7bzjsH5sIZlBzVG7t7qbL1u-y1_k6E0DCtzyZ8iv-pRF3GmewWOj-HQ_grNppGnnx_rRHb-bztNWAvzGT",
"720P": "http://v.jxvdy.com/sendfile/V7bzjsH5sIZlBzVG7t7qbL1u-y1_k6E0DCtzyZ8iv-pRF3GmewWOj-HQ_grNppGnnx_rRHb-bztNWAvzGZ"
}
}
这种形式,外层大括号里面是一个键KEY对应了另一个大括号元素,那么其最外层是一个JSONObject;内层KEY对应的也是一个JSONObject。
当然也可以先创建开一个bean:
- 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 + "]";
- }
- }
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 + "]";
}
}
然后对此做出解析:
- 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);
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);
今天先写到这里|10-02-2014.