`
san_yun
  • 浏览: 2597274 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

FastJson小结

    博客分类:
  • json
 
阅读更多
Fastjson介绍
Fastjson是一个Java语言编写的JSON处理器。
1、遵循http://json.org标准,为其官方网站收录的参考实现之一。
2、功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。
4、开源,使用Apache License 2.0协议开源。http://code.alibabatech.com/wiki/display/FastJSON/Home
 
2、主要的使用入口
 
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
 
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray 
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject    
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean 
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray 
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 
public static final String toJSONString(Object object, boolean prettyFormat); //将JavaBean序列化为带格式的JSON文本 
public static final Object toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArray
public static final <T> T toJavaObject(JSON json, Class<T> clazz) ; //将JsonObject转换为JavaBean
 
 
 
3、有关类库的一些说明
 
SerializeWriter:相当于StringBuffer
JSONArray:相当于List<Object>
JSONObject:相当于Map<String, Object>
 
JSON反序列化没有真正数组,本质类型都是List<Object>
 
4、fastjson还有很多很高级的特性,比如支持注解、支持全类型序列化,这些都是很好的特性,功能强大,不在本次测试范围。
 
下面是一个基于fastJson的json序列化例子
private static class JsonZkSerializer implements ZkSerializer {
		private static Logger logger = Logger.getLogger(JsonZkSerializer.class);

		@Override
		public byte[] serialize(Object data) throws ZkMarshallingError {
			try {
				String type = data.getClass().getName();
				Object jsonObject = JSON.toJSON(data);
				JSONObject json = new JSONObject();
				json.put("classType", type);
				json.put("data", jsonObject);
				return json.toJSONString().getBytes();
			} catch (Exception e) {
				logger.error("JsonZkSerializer serialize error", e);
				return null;
			}
		}

		@Override
		public Object deserialize(byte[] bytes) throws ZkMarshallingError {
			try {
				String jsonStr = new String(bytes);
				JSONObject json = (JSONObject) JSON.parse(jsonStr);
				Class classType = Class.forName(json.get("classType").toString());
				System.out.println(classType);
				return JSON.toJavaObject((JSON) json.get("data"), classType);

			} catch (Exception e) {
				logger.error(e);
				return null;
			}
		}
	}
 
 
Map<String, Map<String, Integer>> timeSpanData = new HashMap<String, Map<String, Integer>>();
		timeSpanData.put("test1", new HashMap<String, Integer>());
		timeSpanData.get("test1").put("v1", 1);
		timeSpanData.put("test2", new HashMap<String, Integer>());
		timeSpanData.get("test2").put("v2", 1);
		timeSpanData.put("test3", new HashMap<String, Integer>());
		timeSpanData.get("test3").put("v3", 1);
		System.out.println(timeSpanData);
		String str = JSON.toJSONString(timeSpanData);
		System.out.println(str);

		timeSpanData = new HashMap<String, Map<String, Integer>>();
		JSONObject appJson = JSON.parseObject(str);
		for (String appName : appJson.keySet()) {
			JSONObject serviceJson = (JSONObject) appJson.get(appName);
			timeSpanData.put(appName, new HashMap<String, Integer>());
			for (String rpcName : serviceJson.keySet()) {
				timeSpanData.get(appName).put(rpcName, serviceJson.getInteger(rpcName));
			}
		}
		System.out.println(timeSpanData);
 
分享到:
评论

相关推荐

    Android FastJSON小示例

    Android Studio FastJSON小示例,对应博文地址: http://blog.csdn.net/djstavaV/article/details/48785801

    fastjson的一个小例子

    fastjson 的一个小例子,里面是我博客中的代码, http://blog.csdn.net/yunxiaoxiaoyun/article/details/16811973

    fastjson-1.2.54-API文档-中文版.zip

    赠送jar包:fastjson-1.2.54.jar; 赠送原API文档:fastjson-1.2.54-javadoc.jar; 赠送源代码:fastjson-1.2.54-sources.jar; 赠送Maven依赖信息文件:fastjson-1.2.54.pom; 包含翻译后的API文档:fastjson-...

    fastjson 各个 版本 jar

    fastjson-1.1.35.jar ,fastjson-1.1.36.jar ,fastjson-1.1.37.jar ,fastjson-1.1.44.jar ,fastjson-1.2.3.jar,fastjson-1.2.4.jar

    fastjson-1.2.83.jar下载

    fastjson-1.2.83.jar下载,fastjson是阿里巴巴的开源JSON解析库,可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也支持从JSON字符串反序列化到JavaBean。fastjson采用全新的JSON解析算法,运行速度极快...

    fastjson-1.2.72-API文档-中文版.zip

    赠送jar包:fastjson-1.2.72.jar; 赠送原API文档:fastjson-1.2.72-javadoc.jar; 赠送源代码:fastjson-1.2.72-sources.jar; 赠送Maven依赖信息文件:fastjson-1.2.72.pom; 包含翻译后的API文档:fastjson-1.2....

    Alibaba Fastjson Jar包

    Alibaba Fastjson Jar包官方版是可以帮助使用Fastjson功能的Fastjson jar包,Fastjson是一个Java语言编写的高性能功能完善的JSON库,当然必备Alibaba Fastjson Jar包官方版。

    fastjson-1.2.78-API文档-中文版.zip

    赠送jar包:fastjson-1.2.78.jar; 赠送原API文档:fastjson-1.2.78-javadoc.jar; 赠送源代码:fastjson-1.2.78-sources.jar; 赠送Maven依赖信息文件:fastjson-1.2.78.pom; 包含翻译后的API文档:fastjson-1.2....

    最新fastJSON C#的JSON开发包 v2.1.18

    fastJSON 版本 v2.1.18

    阿里fastjson.jar

    FASTJSON-1.2.17.jar,FASTJSON-1.2.17-sources.jar

    fastjson.jar包

    Alibaba Fastjson Jar包是可以帮助使用Fastjson功能的Fastjson jar包,Fastjson是一个Java语言编写的高性能功能完善的JSON库,当然必备fastjson jar包。快速解析json神器,方便快捷的工具。

    fastjson-1.0.4jar

    fastjson1.0.4jar,下午可以帮到你!

    fastjson,方便json转换

    实现json转换,fastjson json json转换,可以帮助开发中涉及json格式处理的程序猿。

    fastjson1.2.2.rar

    fastjson1.2.2.rar

    FastJsonJar

    FastJsonJar_你要的都在里面。。。。。。。。。。。。

    fastjson实用工具类

    fastjson实用工具类

    fastJSON文档

    fastjson类库相关文档(fastjson文档)

    Json解析工具之fastJson

    Fastjson是一个Java语言编写的JSON处理器。 1、遵循http://json.org标准,为其官方网站收录的参考实现之一。 2、功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。 3、无...

    springboot 使用spring cache缓存 和 使用fastjson配置redis系列化

    springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot ...

Global site tag (gtag.js) - Google Analytics