fastjson的简单使用

原创 2014年02月21日 14:13:46

json数据格式:

{
    "data": [
        {
            "bp_id": "193934",
            "from_product": "193933",
            "name": "植荟",
            "cover": "xxx",
            "pic": "xxx",
            "big": "xxx",
            "content": "111111",
            "from_brand": "100",
            "price": "65.0"
        },
        {
            "bp_id": "193640",
            "from_product": "193639",
            "name": "华为xxx",
            "cover": "xxx",
            "pic": "xxx",
            "big": "xxx",
            "content": "",
            "from_brand": "109",
            "price": 705.6
        }
    ],
    "total_count": "97",
    "page_count": 49
}

1、简单的FastJsonTools工具类

public class FastJsonTools {
	public FastJsonTools() {
		
	}
	
	/**
	 * 对单个javabean的解析
	 * @param jsonString
	 * @param cls
	 * @return
	 */
	public static <T> T getGoods(String jsonString, Class<T> cls) {
		T t = null;
		try {
			t = JSON.parseObject(jsonString, cls);	
		} catch (Exception e) {
			// TODO: handle exception
		}
		return t;
	}
	
	public static <T>  List<T> getGoods(String jsonStriung, Class<T> cls) {
		List<T> list = new ArrayList<T>();
		try {
			list = JSON.parseArray(jsonStriung, cls);
		} catch (Exception e) {
			// TODO: handle exception
		}
		return list;
	}
	
	public static List<Map<String, Object>> listKeyMaps(String jsonString) {
		List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
		try {
			list = JSON.parseObject(jsonString, new TypeReference<List<Map<String, Object>>>(){});
		} catch (Exception e) {
			// TODO: handle exception
		}
		return list;
	}
}

2、Goods.java

public class Goods{
	public List<Map<String, String>> data;//不常用的数据这里我选择了用list<Map<>>的形式
	public String total_count;
	public String page_count;
	/**
	 * @return the data
	 */
	public List<Map<String, String>> getData() {
		return data;
	}
	/**
	 * @param data the data to set
	 */
	public void setData(List<Map<String, String>> data) {
		this.data = data;
	}
	/**
	 * @return the total_count
	 */
	public String getTotal_count() {
		return total_count;
	}
	/**
	 * @param total_count the total_count to set
	 */
	public void setTotal_count(String total_count) {
		this.total_count = total_count;
	}
	/**
	 * @return the page_count
	 */
	public String getPage_count() {
		return page_count;
	}
	/**
	 * @param page_count the page_count to set
	 */
	public void setPage_count(String page_count) {
		this.page_count = page_count;
	}
}

上面的代码用对象的方式,可以这样写:

public class Goods{
	public List<GoodsInfo> data;
	public String total_count;
	public String page_count;
	/**
	 * @return the data
	 */
	public List<GoodsInfo> getData() {
		return data;
	}
	/**
	 * @param data the data to set
	 */
	public void setData(List<GoodsInfo> data) {
		this.data = data;
	}
	/**
	 * @return the total_count
	 */
	public String getTotal_count() {
		return total_count;
	}
	/**
	 * @param total_count the total_count to set
	 */
	public void setTotal_count(String total_count) {
		this.total_count = total_count;
	}
	/**
	 * @return the page_count
	 */
	public String getPage_count() {
		return page_count;
	}
	/**
	 * @param page_count the page_count to set
	 */
	public void setPage_count(String page_count) {
		this.page_count = page_count;
	}
}

3、GoodsInfo

public class Goods {
	public String bp_id;
	public String from_product;
	public String name;
	public String cover;
	public String pic;
	public String big;
	public String content;
	public String from_brand;
	public String price;
	
	/**
	 * @return the bp_id
	 */
	public String getBp_id() {
		return bp_id;
	}
	/**
	 * @param bp_id the bp_id to set
	 */
	public void setBp_id(String bp_id) {
		this.bp_id = bp_id;
	}
	/**
	 * @return the from_product
	 */
	public String getFrom_product() {
		return from_product;
	}
	/**
	 * @param from_product the from_product to set
	 */
	public void setFrom_product(String from_product) {
		this.from_product = from_product;
	}
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * @return the cover
	 */
	public String getCover() {
		return cover;
	}
	/**
	 * @param cover the cover to set
	 */
	public void setCover(String cover) {
		this.cover = cover;
	}
	/**
	 * @return the pic
	 */
	public String getPic() {
		return pic;
	}
	/**
	 * @param pic the pic to set
	 */
	public void setPic(String pic) {
		this.pic = pic;
	}
	/**
	 * @return the big
	 */
	public String getBig() {
		return big;
	}
	/**
	 * @param big the big to set
	 */
	public void setBig(String big) {
		this.big = big;
	}
	/**
	 * @return the content
	 */
	public String getContent() {
		return content;
	}
	/**
	 * @param content the content to set
	 */
	public void setContent(String content) {
		this.content = content;
	}
	/**
	 * @return the from_brand
	 */
	public String getFrom_brand() {
		return from_brand;
	}
	/**
	 * @param from_brand the from_brand to set
	 */
	public void setFrom_brand(String from_brand) {
		this.from_brand = from_brand;
	}
	/**
	 * @return the price
	 */
	public String getPrice() {
		return price;
	}
	/**
	 * @param price the price to set
	 */
	public void setPrice(String price) {
		this.price = price;
	}
	
}

还有种情况,如果类的成员变量和json的key值不相等,我们可以用以下方式进行序列化和反序列化

序列化(转换成json时):

@JSONField(name="newJsonKey")
public String getName() {
return name;
}
反序列化时(json转换成对象或javabean时):

@JSONField(name="newJsonKey")
public void setName(String name) {
this.name = name;
}

参考地址:http://my.eoe.cn/814017/archive/3374.html(博主的博客还不错哦)


fastjson-1.2.7.jar通用json文本解析实例(轻开IOS和安卓App服务器开发)

  • 2015年12月29日 19:32
  • 11.11MB
  • 下载

一个关于Json数据List和对象嵌套反序列化的工具类,java(20151130)

背景说明: 本示例中用的是fastJson来解析具体的事务; 问题:         当json数据遇到嵌套,我找了一段时间都没有找到很好的解决办法,所以自己写了这个工具来解析相关json字符串,并使...
  • huitoukest
  • huitoukest
  • 2015年11月27日 17:16
  • 2583

FastJson使用

简介 Fastjson是一个Java语言编写的高性能功能完善的JSON库。 高性能 fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jacks...
  • zzhou910
  • zzhou910
  • 2014年04月09日 17:34
  • 17224

fastjson使用实例

package junit.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; im...
  • earbao
  • earbao
  • 2014年09月21日 12:05
  • 13847

FastJson中@JSONField注解使用

最近做项目中,使用了json格式在服务器之间进行数据传输。但是发现json格式数据不符合JAVA中的变量定义规则,并且难以理解,因此需要在后台中做二次处理,将数据处理成我们系统中定义的格式。 思路:...
  • u011425751
  • u011425751
  • 2016年04月22日 13:10
  • 40927

FastJson的基本使用

在开发Android的过程中,如果我们经常与服务器打交道,更新数据等等,那么json必然是个好的数据格式,但是有了json我们要解析它,使用原生的解析也可以,但是很不高效,所以这里介绍两种json数据...
  • wx_962464
  • wx_962464
  • 2014年07月09日 23:39
  • 62976

fastjson用法&Gson

原文:http://www.360doc.com/content/14/1126/00/13147830_428094441.shtml       com.google.code.gson    g...
  • zygzzp
  • zygzzp
  • 2016年04月22日 17:25
  • 377

fastjson的基本使用方法

1 fastjson主要的APIfastjson入口类是com.alibaba.fastjson.JSON, 主要API是JSON.toJSONString和parseObject,使用fastjso...
  • codershamo
  • codershamo
  • 2016年07月22日 14:42
  • 3655

fastjson 使用方法

Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器。 1、遵循http://json.org标准,为其官方网站收录的参考实现之一。 2、功能qiang打,支持JDK的各种类...
  • zeuskingzb
  • zeuskingzb
  • 2013年12月21日 16:20
  • 212870

fastjson用法4

fastjson注解的简单用法 @JSONType(orders = { "id", "name", "password", "reg", "birthday", "age" }, alph...
  • qq_26229765
  • qq_26229765
  • 2015年07月23日 18:47
  • 486
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:fastjson的简单使用
举报原因:
原因补充:

(最多只允许输入30个字)