fast-json.jar的用法
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
}
]
对于这一种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 + "]";
} }
那么相应的解析方法是这种:
JSON.parseArray(json, NewMoviesBean.class);
为甚么回事这样的解析方式呢?由于,分析整个json数据的格式我们能发现,最外层是中括号"[ ]",内側是大括号"{ }";中括号说明整个json数据为一个数组类型,当中的大括号说明是数组中的元素;说明整个就是一个JSONArray,JSONArray中元素又是一个个的JSONObject。
还有一种的解析方式:json数据是这种,
{"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);
}
这样就行解析出想要的数据。
与上面类似的还有一种解析: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"
}
}
这样的形式,外层大括号中面是一个键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 + "]";
} }
然后对此做出解析:
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.
今天接着写我遇到的还有一种解析类型:先给出json数据:
{
"1": "爱情",
"2": "青春",
"3": "温情",
"4": "喜剧",
"5": "悬疑",
"6": "励志",
"7": "职场",
"8": "社会",
"9": "刑侦",
"10": "战争",
"11": "古装",
"12": "科幻",
"13": "动作",
"14": "穿越",
"15": "广告",
"16": "公益",
"17": "恐怖",
"18": "文艺",
"19": "纪录",
"20": "动画",
"21": "剧情",
"22": "其它"
}
然后对此做出解析;能够看出上面的json数据是一个JSONObject,而且他也是一种以键值对形式存在的类似Map的数据类型。那么也就是说能够使用遍历Map的方式来解析这个JOSNObject。
public static void jsonParseFilterFields(String json){
ids = new LinkedList<Integer>();
items = new LinkedList<String>();
JSONObject jsonObject = JSONObject.parseObject(json);
Iterator<String> it = jsonObject.keySet().iterator(); while(it.hasNext()){
String key = it.next();
ids.add(Integer.valueOf(key));
items.add(jsonObject.getString(key));
}
待续;2014-10-4
今天有接触到一种高速的解析方法:json数据是这种
{
introduce=小猪的成长历程,
face=http://www.bejson.com/imgsss,
sex=男,
nick=猪猪,
email=zhuzhu@163.com
}
然后我写了一个用户的个人信息的UserBean
public class UserBean { private String name;
private String nick;
private String face;
private String info;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNick() {
return nick;
}
public void setNick(String nick) {
this.nick = nick;
}
public String getFace() {
return face;
}
public void setFace(String face) {
this.face = face;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public UserBean(String name, String nick, String face, String info) {
super();
this.name = name;
this.nick = nick;
this.face = face;
this.info = info;
}
public UserBean() {
super();
}
@Override
public String toString() {
return "UserBean [name=" + name + ", nick=" + nick + ", face=" + face
+ ", info=" + info + "]";
} }
然后通过fast-json.jar解析:
/**
* 获取用户个人的信息
* @param json
* @return
*/
public static UserBean jsonParseUserBean(String json){
return JSON.parseObject(json, UserBean.class);
}
待续;2014/10/14
建一个群,方便大家交流:蹦蹦哒Android <群号:423923313>
fast-json.jar的用法的更多相关文章
- Android学习笔记之Fast Json的使用
PS:最近这两天发现了Fast Json 感觉实在是强大.. 学习内容: 1.什么是Fast Json 2.如何使用Fast Json 3.Fast Json的相关原理 4.Fast Json的优势, ...
- 记录Newtonsoft.Json的日常用法
最近在做一个使用基于.net mvc 实现前后台传输Json的实例.网上找了一些资料.发现在开发的时候,许多的数据交互都是以Json格式传输的.其中涉及序列化对象的使用的有DataContractJs ...
- BeanShell使用json.jar包处理Json数据
环境准备 ①Jmeter版本 ,JDK ②前置条件:将json.jar包置于..\lib\下, 如果还是报错,可以将该jar包添加到测试计划的Library中:否则会报:Typed variable ...
- SpringBoot 返回json 字符串(jackson 及 fast json)
一.jackson 1.Controller 类加注解@RestController 这个注解相当于@Controller 这个注解加 @ResponseBody 2.springBoot 默认使 ...
- org json 和 fast json 掺杂使用引起的错误
1. 取值的不同 当所取得key不存在时: org json 会抛异常 fast json 会返回null 示例: com.alibaba.fastjson.JSONObject fastJson = ...
- json工具--org.json.jar
org.json可以解析json.把对象包装成json.API文档:http://resources.arcgis.com/en/help/arcobjects-java/api/arcobjects ...
- html5 json的新用法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- json jar包支持
json-lib工具包(json核心包)下载地址: http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/ json ...
- Newtonsoft.Json 的高级用法
Ø 简介 接着前一篇http://www.cnblogs.com/abeam/p/8295765.html,继续研究 Newtonsoft.Json 的一些高级用法.主要包括: 1. JSON ...
随机推荐
- POJ3213(矩阵乘法)
PM3 Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 3036 Accepted: 1059 Description ...
- html标和下标应用
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- SQL Server 2005中的CHECKSUM功能
原文:SQL Server 2005中的CHECKSUM功能 转自此处 页面 checksum 是SQL2005的新功能,提供了一种比残缺页检测强大的机制检测IO方面的损坏.以下是详细描述: 页面 C ...
- android sdk linux 文本 64 位置
android sdk linux 64 之前获得模.现在补上一,然后,小伙伴们下载 版权声明:本文博主原创文章,博客,未经同意不得转载.
- 【Unity 3D】学习笔记29:游戏的例子——简单的小制作地图
无论学习.只看不练是坏科学. 因此,要总结回想这怎么生产MMROPG小地图的游戏.于MMROPG游戏类,在游戏世界中行走时导致各地,通常在屏幕的右上角,将有一个区域,以显示当前的游戏场景微缩.在游戏世 ...
- 试图加载格式不正确的程序。 (Exception from HRESULT: 0x8007000B)
原文:试图加载格式不正确的程序. (Exception from HRESULT: 0x8007000B) 今天在电脑上部署公司的项目,出现这个错误.Bing后,找到原来是因为项目是32位的,而我的系 ...
- 【Struts2学习笔记(2)】Action默认值和配置Action于result各种转发类型
一.Action缺省配置值 <span style="font-size:18px;"><package name="itcast" name ...
- Hadoop它——跑start-all.sh时间namenode不启动
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46353211 近期遇到了一个问题,运行start-all.sh的时候发现JPS一下 ...
- String.Split()功能
我们在过去的教训 String.Join功能(http://blog.csdn.net/zhvsby/archive/2008/11/28/3404704.aspx).当中用到了String.SPli ...
- 第1章 单例模式(Single Pattern)
原文 第1章 单例模式(Single Pattern) 单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点. 一.常用模式: 1 ...