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的用法相关推荐

  1. BeanShell使用json.jar包处理Json数据

    环境准备 ①Jmeter版本 ,JDK ②前置条件:将json.jar包置于..\lib\下, 如果还是报错,可以将该jar包添加到测试计划的Library中:否则会报:Typed variable ...

  2. C++ nlohmann/json 的主要用法

    文章目录 前言 准备工作 引用头文件: 主要用法: 一.声明与构造 1 纯粹声明 2 内容构造 二.解析与序列化 字符串 解析 序列化 文件:// 比如有文件 c:\rankings.json,其内容 ...

  3. Jmeter BeanShell使用json.jar包处理Json数据

    1.环境准备 1)  Jmeter.JDK 2) 将json.jar包置于..\lib\下 json包下载地址:https://mvnrepository.com/ (国内的maven地址) 可以参考 ...

  4. C++ nlohmann/json 的主要用法(cout、printf打印,异常try...catch处理)

    文章目录 前言 准备工作 引用头文件: 主要用法: 一.声明与构造 1 纯粹声明 2 内容构造 二.解析与序列化 字符串 解析 序列化 文件:// 比如有文件 c:\rankings.json,其内容 ...

  5. JAR包及jar命令用法

    常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了:而另一种是使用 JET 来进行 ...

  6. JSON简介以及用法汇总

    SON简介以及用法汇总 什么是JSON? JavaScript 对象表示法(JavaScript Object Notation). JSON是一种轻量级的数据交换格式,某个JSON格式的文件内部譬如 ...

  7. java转json jar包_java转换json需导入的jar包说明

    commons-beanutils-1.8.0.jar不加这个包 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBe ...

  8. pythonjson中list操作_python3中json与JsonPath用法详解

    一.JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适用于进行数据交互的场 ...

  9. java json jar包_jsonobject jar包下载

    JSONObject所必须的6个jar包分享给需要的朋友,这是json开发必备的jar工具架包,如果您正需要的话不如马上来脚本之家下载这款官方最新的jsonobject jar包供您进行json开发, ...

最新文章

  1. 如何正确使用as follows 与 following
  2. 不能创建对象: 'CDONTS.Newmail'”
  3. 页面与页面之间传递参数
  4. centos6.5系统自带python2.6升级到python2.7
  5. 联想e52进入bios_联想笔记本怎么设置u盘启动|联想笔记本bios设置usb启动步骤
  6. python的异常处理
  7. mysql etl工具有哪些_常见ETL工具一览,你知多少?
  8. C++11标准库 - array
  9. 看阿里云如何为直播用户营造临场沉浸感?
  10. 查询SQLSERVER执行过的SQL记录
  11. AutoCAD2004启动时出现fail to get CommcntrController的怎么办
  12. 敏捷开发系列学习总结(15)——Spotify敏捷模式详解三部曲第三篇:工程文化
  13. Java中反射性能测试
  14. SQL 高效运行注意事项(一)
  15. 算法设计与分析: 3-4 多重幂计数问题
  16. 云集宣布品牌升级,推出全新slogan“购物享受批发价”
  17. 家庭宽带相关知识及工具
  18. FPGA学习之路-ZCU106板子点亮PS侧LED
  19. 如何将电脑文件同步备份到u盘或移动硬盘?
  20. yyk冷热启动耗时.bat

热门文章

  1. java内联_JAVA中的内联函数
  2. 指令系统——数据寻址(2)(详解)
  3. Packet Tracer 通过配置静态路由实现不同网段之间的通信(详细步骤)
  4. LeetCode MySQL 1821. 寻找今年具有正收入的客户
  5. 我们并没有觉得MapReduce速度慢,直到Spark出现
  6. LeetCode 393. UTF-8 编码验证(位运算)
  7. LeetCode 241. 为运算表达式设计优先级(动态规划)
  8. 程序员面试金典 - 面试题 10.05. 稀疏数组搜索(二分查找)
  9. 剑指Offer - 面试题56 - I. 数组中数字出现的次数(异或,分组)
  10. LeetCode 43. 字符串相乘(大数乘法)