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 protected]
}

然后我写了一个用户的个人信息的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>

时间: 2024-08-09 19:53:57

fast-json.jar的用法的相关文章

SpringBoot 返回json 字符串(jackson 及 fast json)

一.jackson 1.Controller 类加注解@RestController 这个注解相当于@Controller 这个注解加 @ResponseBody 2.springBoot 默认使用 jackson 来把java 对象转化为json 字符串. 二.fast json 1.pom 文件加入fast json 依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson&l

JSON入门之二:org.json的基本用法

廊坊的风一如既往的在窗外刮着,天地间肆意地飘洒,纵情在一刹那,为何现在只剩下风吹乱我的发,乱蓬蓬的,还是去超市逛逛吧,买吃的`(*∩_∩*)′,走进华联超市,热情的店员招呼着我,开始为我介绍,推荐各种各样商品,店员向我推荐了他们的会员卡,全场所有项目均八折,每逢节假日打五折,我心想那太划算了,而且他们总店,分店,加盟店都可以用,所以就办了张会员卡.今天我们的设计模式就从超市会员卡开始说起. 这个俨然就是我们设计模式中的组合模式----组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,

Android学习笔记之Fast Json的使用

PS:最近这两天发现了Fast Json 感觉实在是强大.. 学习内容: 1.什么是Fast Json 2.如何使用Fast Json 3.Fast Json的相关原理 4.Fast Json的优势,以及为什么推荐使用Fast Json 1.Fast Json的相关介绍   说道Json想必我们都不陌生,数据传输的两种形式之一,另一种就是我们的xml了.不过现在更多的还是使用基于Json的格式来进行数据传输,Java的api接口为我们提供了相关的api接口用于对Json数据进行处理,如何将数据打

JSON对象的解析,JSON.stringify()/JSON.parse()的用法

ECMAScript 5 对解析 JSON 的行为进行规范,定义了全局对象 JSON .支持这个对象的浏览器有 IE 8+.Firefox 3.5+.Safari 4+.Chrome 和Opera 10.5+. JSON 对象有两个方法: stringify() 和 parse() 用法如下: JSON.stringify()的用法/参数介绍 1.JSON.stringify(jsonObj),jsonObj为JSON数据,该方法是将JSON格式的数据,序列化成字符串类型 var bigWeb=

jquery serialize对json的包装用法

jquery对象.serialize()  可以多用于表单对数据封装提交 能够收表参数,形成一个json格式字符串, 前提是:必须为每一个表单项取一个name属性 对元素 设置 name属性, 然后 $("元素").serialize()会自动包装  json格式 例如 1 <form> 2 <input type="text" name="username"> 3 <input type="text&qu

html5 json的新用法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script> /* eval的用法 var otr='function show(){alert(123)}'; eval(otr); show();*/ /* parse的用法 严格json格式*/ /* var str=

json jar包支持

json-lib工具包(json核心包)下载地址: http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/ json-lib还需要以下依赖包:jakarta commons-lang 2.5.jarjakarta commons-beanutils 1.8.0.jarjakarta commons-collections 3.2.1.jarjakarta commons-logging 1.1.1.jarezmo

python 导入json模块的用法

json用于字符串,和 python数据类型间进行转换,json模块有四个功能,dumps,dump,loads,load. json 用法 json.dumps 将数据通过特殊的形式转换为所有程序语言都认识的字符串 import json js_str=json.dumps(data) print('js_str') json.dump 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件 文章来自 http://www.96net.com.cn 原文地址:https://www.

JSON格式化,JSON.stringify()的用法

JSON.stringify(json [, replacer] [, space]) 的用法 (1) json值:必须,可以是数组或Object; (2) replacer: 可选值,可以是数组,也可以是方法: 数组时,它是和json有关系的: 一般来说,系列化后的结果是通过键值对来进行表示的. 如果此时replacer的值在value中存在,那么就以replacer的值做key,json的值为value进行表示,如果不存在,就忽略. 方法时,就是说把系列化后json的每一个对象传进方法里面进