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();}@Overridepublic 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();}@Overridepublic 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();}@Overridepublic 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>
转载于:https://www.cnblogs.com/mengfanrong/p/4296031.html
fast-json.jar的用法相关推荐
- BeanShell使用json.jar包处理Json数据
环境准备 ①Jmeter版本 ,JDK ②前置条件:将json.jar包置于..\lib\下, 如果还是报错,可以将该jar包添加到测试计划的Library中:否则会报:Typed variable ...
- C++ nlohmann/json 的主要用法
文章目录 前言 准备工作 引用头文件: 主要用法: 一.声明与构造 1 纯粹声明 2 内容构造 二.解析与序列化 字符串 解析 序列化 文件:// 比如有文件 c:\rankings.json,其内容 ...
- Jmeter BeanShell使用json.jar包处理Json数据
1.环境准备 1) Jmeter.JDK 2) 将json.jar包置于..\lib\下 json包下载地址:https://mvnrepository.com/ (国内的maven地址) 可以参考 ...
- C++ nlohmann/json 的主要用法(cout、printf打印,异常try...catch处理)
文章目录 前言 准备工作 引用头文件: 主要用法: 一.声明与构造 1 纯粹声明 2 内容构造 二.解析与序列化 字符串 解析 序列化 文件:// 比如有文件 c:\rankings.json,其内容 ...
- JAR包及jar命令用法
常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了:而另一种是使用 JET 来进行 ...
- JSON简介以及用法汇总
SON简介以及用法汇总 什么是JSON? JavaScript 对象表示法(JavaScript Object Notation). JSON是一种轻量级的数据交换格式,某个JSON格式的文件内部譬如 ...
- java转json jar包_java转换json需导入的jar包说明
commons-beanutils-1.8.0.jar不加这个包 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBe ...
- pythonjson中list操作_python3中json与JsonPath用法详解
一.JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适用于进行数据交互的场 ...
- java json jar包_jsonobject jar包下载
JSONObject所必须的6个jar包分享给需要的朋友,这是json开发必备的jar工具架包,如果您正需要的话不如马上来脚本之家下载这款官方最新的jsonobject jar包供您进行json开发, ...
最新文章
- 如何正确使用as follows 与 following
- 不能创建对象: 'CDONTS.Newmail'”
- 页面与页面之间传递参数
- centos6.5系统自带python2.6升级到python2.7
- 联想e52进入bios_联想笔记本怎么设置u盘启动|联想笔记本bios设置usb启动步骤
- python的异常处理
- mysql etl工具有哪些_常见ETL工具一览,你知多少?
- C++11标准库 - array
- 看阿里云如何为直播用户营造临场沉浸感?
- 查询SQLSERVER执行过的SQL记录
- AutoCAD2004启动时出现fail to get CommcntrController的怎么办
- 敏捷开发系列学习总结(15)——Spotify敏捷模式详解三部曲第三篇:工程文化
- Java中反射性能测试
- SQL 高效运行注意事项(一)
- 算法设计与分析: 3-4 多重幂计数问题
- 云集宣布品牌升级,推出全新slogan“购物享受批发价”
- 家庭宽带相关知识及工具
- FPGA学习之路-ZCU106板子点亮PS侧LED
- 如何将电脑文件同步备份到u盘或移动硬盘?
- yyk冷热启动耗时.bat
热门文章
- java内联_JAVA中的内联函数
- 指令系统——数据寻址(2)(详解)
- Packet Tracer 通过配置静态路由实现不同网段之间的通信(详细步骤)
- LeetCode MySQL 1821. 寻找今年具有正收入的客户
- 我们并没有觉得MapReduce速度慢,直到Spark出现
- LeetCode 393. UTF-8 编码验证(位运算)
- LeetCode 241. 为运算表达式设计优先级(动态规划)
- 程序员面试金典 - 面试题 10.05. 稀疏数组搜索(二分查找)
- 剑指Offer - 面试题56 - I. 数组中数字出现的次数(异或,分组)
- LeetCode 43. 字符串相乘(大数乘法)