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 ...
随机推荐
- 【cocos2d-js官方文档】二十五、Cocos2d-JS v3.0中的单例对象
为何将单例模式移除 在Cocos2d-JS v3.0之前.全部API差点儿都是从Cocos2d-x中移植过来的,这是Cocos2d生态圈统一性的重要一环.可惜的是,这样的统一性也在非常大程度上限制了C ...
- Jedis连接
Jedis连接 到场api中的jedis.我们能够发现,jedis类提供了4个构造方法.都可用于连接: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29 ...
- java.lang.VerifyError
public class VerifyErrorextends LinkageError Thrown when the "verifier" detects that a cla ...
- Effective C++ -- 继承和面向对象设计
32.确保你的public继承了模is-a关系 public继承意味着is-a关系(里氏替换原则),一切适用于基类也适用于派生类. 矩形继承正方形问题: 可实施与矩形的操作无法实施与正方形 在编程领域 ...
- 孙陪你,了解它的权力--Kinect结合的发展Unity3D游戏应用开发
unity3d正在使用kinect三维模型数据控制(它切成脚本) 博主在做项目时须要利用kinect数据控制三维模型中人物的动作.但不是实时控制,而是利用之前获得的骨骼数据,直接控制.无需再利用脚本打 ...
- C# 闭包问题
C# 闭包问题-你被”坑“过吗? 引言 闭包是什么?以前看面试题的时候才发现这个名词. 闭包在实际项目中会有什么问题?现在就让我们一起来看下这个不太熟悉的名词. 如果在实际工作中用到了匿名函数和lam ...
- Android CTS測试Fail项改动总结(四)
Android5.1上的測试 1.android.security.cts.SELinuxDomainTest# testInitDomain fail 打印的log junit.framework. ...
- [WebGL入门]四,渲染准备
注意:文章翻译http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外.鄙人webgl研究还不够深入,一些专业词语,假设翻译有误,欢迎大家 ...
- JAVA —— 数据类型
引言:java 数据类型可分为两大类:基本数据类型和引用类型,其中基本数据类型又包括整形.浮点型.字符型和布尔型,而引用型变量与基本类型变量不同,它的值是指向内存空间的引用(地址),引用在其他语言中称 ...
- UVa 208 - Firetruck 回溯+剪枝 数据
题意:构造出一张图,给出一个点,字典序输出所有从1到该点的路径. 裸搜会超时的题目,其实题目的数据特地设计得让图稠密但起点和终点却不相连,所以直接搜索过去会超时. 只要判断下起点和终点能不能相连就行了 ...