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 ...
随机推荐
- solr/solrj原子更新
lucene原子更新自己不用多介绍,但solr它的包装,下面是一个简单的介绍是:这个操作是用于索引非常有用. 详细在代码中使用例如以下: /** * 原子更新方式 * */ public static ...
- JAVA基金会 (三)反射 反思的深度分析
上一页已经推出反映的一些基本概念,这主要是通过一个例子反映谈的过程,以及样品的实际应用. 这个样例是这种设计思路:从一个属性文件里读取一段字符串,然后,依据该字符串生成相应的类实例对象:这之后另一个增 ...
- 关闭 MsMpEng.exe
MsMpEng.exe是Windows Defender 自动保护服务的核心引擎. 系统是win8.1 最近发现MsMpEng.exe是任务管理器里面最占内存的一个程序,且无法强制结束程序.偶然发现一 ...
- mousewheel 与 DOMMouseScroll
FF使用DOMMouseScroll,其他浏览器使用mousewheel FF在一个特殊的属性event.detail.表示滚动的值 event.detail 正数:向下滚动,负数:向上滚动 滚动一次 ...
- Chromium-Dev一些缩写
备案权 tl;dr: && TL;DR; :"Too long;Don't read" PSA :"Publice Service Announcem ...
- java通过抛异常来返回提示信息
结论:如果把通过抛异常的方式得到提示信息,可以使用java.lang.Throwable中的构造函数: public Throwable(String message) { fillInStackTr ...
- 结构的具体说明sublime text 2/3的Golang开发环境
1.下载并安装sublime text 2/3 官网下载:http://www.sublimetext.com/ 2.安装成功sublime text后.启动sublime text.选择菜单栏&qu ...
- 【LeetCode从零单排】No15 3Sum
称号 Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all ...
- 一个关于Linux Bridge配置的吐嘈
话说有些事情十分适合在放假前的一天折腾一天,但绝对不适合在你准备去吃饭前多看一眼...我上周就碰到了这么一件揪心的事,终于以低血糖收场.十分狼狈地四处觅食,却觅到了一包超级辣的鸡爪.吃完后感觉症状加重 ...
- eclipse环境下如何配置tomcat
eclipse环境下如何配置tomcat 很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过 ...