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

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开发中,数据交换和序列化是常见的需求,FastJSON是阿里巴巴提供的一款高效、功能丰富的JSON库,它被广泛应用于Android Studio项目中。本文将详细介绍如何在Android Studio中使用FastJSON进行JSON解析和...

    fastjson的一个小例子

    在这个小例子中,我们将深入探讨FastJson的使用方法,以及它如何帮助开发者在Android开发中快速处理JSON数据。 在Android应用开发中,JSON是一种常见的数据交换格式,用于在服务器和客户端之间传递数据。FastJson以...

    fastjson1.2.2.jar

    《深入理解Fastjson:阿里巴巴的高效JSON库》 在当今的软件开发中,JSON作为一种轻量级的数据交换格式,被广泛应用于服务器与客户端之间的数据传输。而Fastjson,由阿里巴巴公司开发,是一款性能优秀且易用的Java...

    FastJsonJar

    《FastJsonJar:Java开发中的高效JSON处理库》 FastJsonJar,正如其名,是一个专为Java开发者设计的高效JSON解析和生成工具。在现代Web服务和移动应用开发中,JSON作为数据交换格式,其使用频率之高不言而喻。...

    Fastjson1.2.47以及之前的所有版本

    **Fastjson:一个高效、强大的Java JSON库** Fastjson是阿里巴巴开发的一个开源项目,它是一个Java语言编写的高性能功能完备的JSON库。Fastjson能够将Java对象转换为JSON字符串,也能将JSON内容转换为对应的Java...

    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.0.4jar

    《深入理解Fastjson:Java中的高效JSON库》 Fastjson是阿里巴巴开源的一个高性能的JSON库,主要用于处理JSON数据的解析、生成以及对象与JSON之间的相互转换。在标题中提到的"fastjson-1.0.4jar"是该库的一个特定...

    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-1.2.51-API文档-中文版.zip

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

    fastjson-1.2.31的官方jar包合集【fastjson-1.2.31.jar,fastjson-1.2.31-sources.jar】

    fastjson-1.2.31的官方jar包合集【fastjson-1.2.31.jar,fastjson-1.2.31-sources.jar,fastjson-1.2.31-sources.jar】,还包括源码source,和文档。

    阿里fastjson.jar

    阿里Fastjson是一个高性能的Java JSON库,由阿里巴巴公司开发并维护。它被广泛应用于各种Java项目中,尤其在数据解析和序列化方面表现卓越。Fastjson的命名来源于"Fast Java Object to JSON",即快速地将Java对象...

    fastjson定制工程,别名配置化

    标题中的“fastjson定制工程,别名配置化”指的是对Fastjson库的扩展,使其能够支持动态配置字段别名,而不是像原生Fastjson那样只能硬编码(hardcode)在代码中。这样的改进对于处理与第三方接口交互时,字段名称...

    fastjson1.2.2.rar

    **Fastjson 深度解析** Fastjson 是阿里巴巴开源的一款高效、功能强大的 JSON 库,它主要用于 Java 和 Android 平台。在标题“fastjson1.2.2.rar”和描述中,我们可以推断出这是一个关于 Fastjson 版本 1.2.2 的...

    fastjson-1.2.9

    1. **性能优化**:Fastjson一直以其高性能著称,1.2.9版本中可能包含了一些性能提升的改进,比如更快的解析速度和更小的内存占用。 2. **JSONPath支持**:Fastjson支持JSONPath表达式,这是一种类似于XPath的查询...

    fastjson-1.2.9.jar.zip

    **Fastjson 深度解析** Fastjson 是阿里巴巴开发的一款高效、功能强大的 JSON 解析库,广泛应用于 Java 开发环境中。其主要特点是性能优异,易用性好,且具有丰富的功能,使得它在处理 JSON 数据时能提供极高的效率...

    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包.zip

    Fastjson是阿里巴巴开发的一款高效、功能丰富的JSON库,主要用于Java平台。它提供了快速解析和生成JSON的能力,使得在Java程序中处理JSON数据变得极其便捷。这个"Alibaba Fastjson Jar包.zip"文件包含了Fastjson库的...

    fastjson-1.2.66_fastjson-1.2.66.jar_Fastjson_

    《深入解析Fastjson 1.2.66版本》 Fastjson是阿里巴巴开源的一个高性能的JSON库,它在Java世界中被广泛使用,为开发者提供了快速、方便地处理JSON数据的能力。Fastjson 1.2.66是该库的一个稳定版本,其核心功能包括...

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

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

Global site tag (gtag.js) - Google Analytics