`
wenshao
  • 浏览: 271307 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

fastjson 发布正式版本1.0.1

阅读更多
Fast是一个JSON的Processor,功能强大、易用、快速的!
    * 功能强大。完全兼容json.org的规范,支持Java Bean、Map、Collections、Date、Enum。
    * 易用。提供简单易用的toJSONString和parseObject接口,直接支持Java Bean,不需要额外配置映射。
    * 快速。比目前已知的其他Java JSON Processor都要快,包括JSON-LIB、Simple JSON、GSON、Jackson。
    * 开源。目前Fastjson是一个开源项目,采用Apache License 2.0协议,是阿里巴巴开源平台中的一个项目,公开的svn地址是:http://code.alibabatech.com/svn/fastjson/。公网上的 wiki地址是:http://code.alibabatech.com/wiki/display/fastjson/fastjson

当前文档
    * http://code.alibabatech.com/wiki/display/fastjson/fastjson
    * 下载该版本 http://code.alibabatech.com/svn/fastjson/repository/com.alibaba.fastjson/1.0.1/fastjson-1.0.1.jar


Release Notes
Bug
    * [FASTJSON-2] - null转成对象时抛异常
    * [FASTJSON-3] - 反序列化时不支持List<Map<String, String>>类型

New Feature
    * [FASTJSON-1] - 增加JavaBean到JSONObject之间的转换
    * [FASTJSON-7] - parse对数组的支持
分享到:
评论
36 楼 tterry 2011-03-31  
国内呢  还搞个英文页
35 楼 yaoba 2011-03-31  
wenshao 写道
ccvcd 写道
wenshao 写道
whiletrue 写道
文档好少,不知道日期格式是怎么支持的?


对日期格式的支持包括long、ISO08601、还是new Date三种格式。

        //字符串去空格处理
         jsonConfig.registerJsonValueProcessor(java.lang.String.class, new StringJsonValueProcessor());
         //日期值处理器  
         jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor());  

对对象类型处理机制,是否也可以考虑json-lib的实现方式,
这样对日期的处理就会更加灵活了。

嗯,这是可以参考的一种实现,周末有空了就去做!



wenshao呀,等了好久了,都不有看到有这个功能呀,项目里已经用了fastjson 如果有这个功能那就方便很多呀
34 楼 whiletrue 2011-02-24  
请问下温少,如果我想自己定义日期的格式怎么处理?比如格式化成 @1298533179070@,只是一串数字的,脚本得到了也不知道类型
33 楼 tywo45 2011-02-24  
谢谢温少的回复!
1、“我好汗”,是因为我以为fastjson依赖那个json组件,没想到原来是为了做对比测试。呵呵。
2、我那个错,是在svn下下来测试的,是个1.0.2的“快照”版(用mvn install,然后再用的),应该是取错版本了。
3、API的使用方式,我回头想想,不过给我第一感觉,是API暴露了实现细节。
32 楼 wenshao 2011-02-24  
ccvcd 写道
wenshao 写道
whiletrue 写道
文档好少,不知道日期格式是怎么支持的?


对日期格式的支持包括long、ISO08601、还是new Date三种格式。

        //字符串去空格处理
         jsonConfig.registerJsonValueProcessor(java.lang.String.class, new StringJsonValueProcessor());
         //日期值处理器  
         jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor());  

对对象类型处理机制,是否也可以考虑json-lib的实现方式,
这样对日期的处理就会更加灵活了。

嗯,这是可以参考的一种实现,周末有空了就去做!
31 楼 wenshao 2011-02-24  
iminto 写道
http://code.alibabatech.com/wiki/display/fastjson/fastjson

这里还没更新?还是1.0.0


谢谢提醒,文档已经更新了!
30 楼 ccvcd 2011-02-24  
wenshao 写道
whiletrue 写道
文档好少,不知道日期格式是怎么支持的?


对日期格式的支持包括long、ISO08601、还是new Date三种格式。

        //字符串去空格处理
         jsonConfig.registerJsonValueProcessor(java.lang.String.class, new StringJsonValueProcessor());
         //日期值处理器  
         jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor());  

对对象类型处理机制,是否也可以考虑json-lib的实现方式,
这样对日期的处理就会更加灵活了。
29 楼 iminto 2011-02-24  
文档还不够详细
28 楼 iminto 2011-02-24  
http://code.alibabatech.com/wiki/display/fastjson/fastjson

这里还没更新?还是1.0.0
27 楼 showtime520 2011-02-24  
我觉得再加个exclude方法不就行了么?
26 楼 lqixv 2011-02-24  
Rooock 写道
wenshao 写道
Rooock 写道

JSONSerializer serializer = new JSONSerializer(new JSONSerializerMap().put(User.class, new JavaBeanSerializer(User.class, Collections.singletonMap("id", "uid"))));



这里, 写几个, 就显示几个. 不写, 就全过滤了?


是的,你猜对了!




温少. 假如User.class的字段为filed1, filed2, ..., filed100, id, name

需要将id重命名为uid, 同时过滤掉name. 但保留filed1~filed100不变

这个时候, 是不是很别扭..

我认为正常,因为这就象 sql 语句的写法。但不知有没有类似 * 号这样的通配符?如果没有的话,确实麻烦点。建议参考 sql 语句选择字段的做法。
25 楼 wenshao 2011-02-24  
Rooock 写道
wenshao 写道
Rooock 写道

JSONSerializer serializer = new JSONSerializer(new JSONSerializerMap().put(User.class, new JavaBeanSerializer(User.class, Collections.singletonMap("id", "uid"))));



这里, 写几个, 就显示几个. 不写, 就全过滤了?


是的,你猜对了!




温少. 假如User.class的字段为filed1, filed2, ..., filed100, id, name

需要将id重命名为uid, 同时过滤掉name. 但保留filed1~filed100不变

这个时候, 是不是很别扭..


是啊,我也觉得不妥,所以要改进!
24 楼 Rooock 2011-02-24  
wenshao 写道
Rooock 写道

JSONSerializer serializer = new JSONSerializer(new JSONSerializerMap().put(User.class, new JavaBeanSerializer(User.class, Collections.singletonMap("id", "uid"))));



这里, 写几个, 就显示几个. 不写, 就全过滤了?


是的,你猜对了!




温少. 假如User.class的字段为filed1, filed2, ..., filed100, id, name

需要将id重命名为uid, 同时过滤掉name. 但保留filed1~filed100不变

这个时候, 是不是很别扭..
23 楼 wenshao 2011-02-23  
tywo45 写道
<dependencies>
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-core-lgpl</artifactId>
			<version>1.7.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-lgpl</artifactId>
			<version>1.7.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>1.4</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.googlecode.json-simple</groupId>
			<artifactId>json-simple</artifactId>
			<version>1.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>net.sf.json-lib</groupId>
			<artifactId>json-lib</artifactId>
			<version>2.4</version>
			<classifier>jdk15</classifier>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.5</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>1.6</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

我好汗!


这有什么问题么,要对比测试啊!
22 楼 wenshao 2011-02-23  
tywo45 写道
字段过滤的API,我觉得可以优化一下


是的,要优化处理。如果有好的想法,请告诉我!
21 楼 wenshao 2011-02-23  
tywo45 写道
int[] intArr = new int[] { 4, 2 };
		String jsonstr = JsonWrap.beanToJsonString_2(intArr);
		System.out.println(jsonstr);

报:Exception in thread "main" com.alibaba.fastjson.JSONException: TODO ERROR
at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:129)
at com.alibaba.fastjson.parser.DefaultExtJSONParser.parseObject(DefaultExtJSONParser.java:160)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:120)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:130)
at com.talent.platform.core.json.JsonWrap.jsonStringToBean_2(JsonWrap.java:188)
at com.talent.platform.core.json.JsonWrap.main(JsonWrap.java:64)


我刚测试过,没问题啊!
int[] array = new int[] {1, 2};
String text = JSON.toJSONString(array);
JSON.parseObject(text, int[].class);
System.out.println(text);


我用1.0.1版本测试的。
20 楼 tywo45 2011-02-23  
<dependencies>
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-core-lgpl</artifactId>
			<version>1.7.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-lgpl</artifactId>
			<version>1.7.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>1.4</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.googlecode.json-simple</groupId>
			<artifactId>json-simple</artifactId>
			<version>1.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>net.sf.json-lib</groupId>
			<artifactId>json-lib</artifactId>
			<version>2.4</version>
			<classifier>jdk15</classifier>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.5</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>1.6</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

我好汗!
19 楼 tywo45 2011-02-23  
字段过滤的API,我觉得可以优化一下
18 楼 tywo45 2011-02-23  
int[] intArr = new int[] { 4, 2 };
		String jsonstr = JsonWrap.beanToJsonString_2(intArr);
		System.out.println(jsonstr);

报:Exception in thread "main" com.alibaba.fastjson.JSONException: TODO ERROR
at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:129)
at com.alibaba.fastjson.parser.DefaultExtJSONParser.parseObject(DefaultExtJSONParser.java:160)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:120)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:130)
at com.talent.platform.core.json.JsonWrap.jsonStringToBean_2(JsonWrap.java:188)
at com.talent.platform.core.json.JsonWrap.main(JsonWrap.java:64)
17 楼 wenshao 2011-02-23  
ccvcd 写道
wenshao 写道
ccvcd 写道
关注fastjson有段时间了,很想使用,以前用json-lib,一直没有下定决心使用fastjson很重要的一点是,json-lib在生成json字符串的时候可以实现过滤对象属性,可fastjson里一直没有看到这方面的解决办法,是不是考虑实现这一特性呢??


这个功能是支持的!比如:
public static class User {
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

User user = new User();
user.setId(123);
user.setName("毛头");

JSONSerializerMap mapping = new JSONSerializerMap();
mapping.put(User.class, new JavaBeanSerializer(User.class, Collections.singletonMap("id", "uid")));

JSONSerializer serializer = new JSONSerializer(mapping);
serializer.write(user);
String jsonString = serializer.toString();

Assert.assertEquals("{\"uid\":123}", jsonString);


在上面的例子中,User类有两个字段,过滤了name字段,而且把id字段重命名为uid。


public class JsonResult {
	private String message;
	private List results;

	public List getResults() {
		return results;
	}
	
	public void setResults(List obj) {
		this.results = obj;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}
}

JsonResult 中的results是一个List,list中的对象有可能是 User对象,也可能是Group对象,如果我把
JsonResult对象生成json字符串,我该如果过滤呢,每次生成json字符串对象时,我只是知道一个可返回的属性列表,
User时是uid,name;Group时是id,groupName等等,

现在用json-lib 很容易实现,使用  JsonConfig setJsonPropertyFilter 方法,
使用 mapping.put(User.class, new JavaBeanSerializer(User.class, Collections.singletonMap("id", "uid")));
很难做Json的集中处理,总不能根据一个对象来写一段序列化配置吧。


明白你的意思了,考虑在1.0.2中实现,谢谢你指出这个问题。

相关推荐

    fastjson多个版本 1.2.2、1.2.31、1.2.47、1.2.53、1.2.54、1.2.62、1.2.73、1.2.74版本

    fastjson的多个版本,fastjson 1.2.2版本、 fastjson 1.2.31版本、fastjson 1.2.47版本、fastjson 1.2.53版本、fastjson 1.2.54版本、fastjson 1.2.62版本、fastjson 1.2.73版本、fastjson 1.2.74版本

    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各版本jar包以及使用方法

    Fastjson曾因某些版本存在安全漏洞而被关注,因此在使用过程中应保持版本更新,及时修复可能的安全风险。此外,避免在不安全的环境中使用`parseObject()`方法,防止恶意输入导致代码执行。 总之,Fastjson作为一款...

    fastjson最新版本jar包

    fastjson最新版本jar包 fastjson-1.2.14.jar

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

    对于使用Fastjson 1.2.47及之前版本的开发者和管理员,最重要的是尽快升级到最新版本。Fastjson团队已经修复了这些已知的安全问题,因此更新到1.2.47之后的稳定版本是防止攻击的第一步。此外,可以开启Fastjson的...

    高版本的fastjson-1.2.71解决安全漏洞.rar

    在标题提到的“高版本的fastjson-1.2.71解决安全漏洞”中,我们主要关注的是Fastjson如何通过更新到1.2.71版本来修复这些已知的安全问题。 Fastjson的安全漏洞通常涉及其自动类型识别机制。这个机制允许JSON字符串...

    Fastjson各版本反序列化EXP 1.2.24 1.2.41 1.2.42 1.2.43 1.2.45 48 62 66

    # Fastjson反序列化漏洞为例 1、此时/tmp目录 ![img]...

    fastjson2-2.0.39.zip

    本文将深入探讨Fastjson2-2.0.39版本,解析其核心功能与使用技巧。 Fastjson是阿里巴巴的一个高性能的JSON库,它的主要功能包括JSON字符串与Java对象之间的转换,支持多种复杂的JSON操作。Fastjson2-2.0.39是该库的...

    各个版本fastJson_jar包最新版

    Fastjson是阿里巴巴开发的一款高性能的Java语言JSON库,它的全称是Fast Java Object to JSON and JSON to Java Object,...在集成测试和生产环境中,建议使用稳定版,并关注官方发布的更新公告,以便及时进行版本升级。

    fastjson1.2.2版本.jar

    标题中的"fastjson1.2.2版本.jar"指的是FastJSON库的1.2.2版本的Java Archive(JAR)文件,这是一个包含了FastJSON库所有类和资源的打包文件,方便在Java项目中作为依赖使用。 FastJSON的核心功能在于它能够便捷地...

    fastjson Android包 版本1.1.59

    fastjson 包

    fastjson最新版本库1.2.47

    **Fastjson 深度解析** ...1.2.47版本的发布,继续增强了这一工具的可靠性和实用性,是开发者处理 JSON 数据的理想选择。在实际项目中,合理运用 Fastjson 的各种特性,能够提高开发效率,优化程序性能。

    fastjson-1.2.4最新版本

    fastjson-1.2.4.jar 最新版本

    fastjson-1.2.4.jar

    《深入解析Fastjson-1.2.4.jar...1.2.4版本的发布,进一步提升了其稳定性和性能,开发者可以根据具体需求选择合适的版本使用。通过阅读源码、使用说明和实践操作,可以更好地理解和掌握Fastjson的精髓,提升开发效率。

    fastjson-1.2.66版 2020年最新发布,继续加固安全

    fastjson 1.2.66 已发布,这又是一个维护版本,修复了一些 BUG,并且做安全加固,补充了 AutoType 黑名单。 Issues 修复某些场景下BeanToArray报错的问题 修复某些场景多版本共存导致的的兼容问题 修复...

    fastjson-1.2.9

    在Fastjson-1.2.9版本中,我们主要关注三个核心组件:`fastjson-1.2.9.jar`、`fastjson-1.2.9-javadoc.jar`和`fastjson-1.2.9-sources.jar`。 首先,`fastjson-1.2.9.jar`是Fastjson的核心库文件,包含了所有处理...

    fastjson-1.1.34.android.jar最新版本

    Fastjson的最新版本为`1.1.34.android`,特别针对Android平台进行了优化,提升了在Android设备上的运行效率和兼容性。 【Android】是基于Linux内核的开源移动操作系统,广泛应用于智能手机和平板电脑。Fastjson-1.1...

    fastjson-1.2.74.jar和1.2.53两个版本

    2020最新的fastjson.jar,阿里开源的,非常好用,里面有两个版本,分别是1.2.53跟1.2.74两个版本,欢迎大家下载

    fastJSON_v2.3.5_JSON_windows_V2_

    - `fastJSON.nuspec`是NuGet包规范文件,定义了一个NuGet包的元数据,如作者、版本、依赖项等,用于创建NuGet包发布到NuGet仓库。 - `fastJSON.sln`是Visual Studio解决方案文件,包含了项目的多个组件或子项目。 - ...

    FastJsonJar

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

Global site tag (gtag.js) - Google Analytics