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

阿里巴巴开源平台发布fastjson 1.0.5版本

阅读更多
版本1.0.5,对Parser和Serializer提供了更多的可扩展性。在Parser方面,提供了新的扩展方式能够定制Deserializer,还支持TypeReference来提供类型信息。在Serializer方面,主要是提供新特性NameFilter和ValueFilter。

官方主页:http://code.alibabatech.com/wiki/display/FastJSON/Home

具体信息如下:
Bug
- PropertyFilter对Map类型数据不起作用

Improvement
- 序列化对JMX的CompositeData直接支持
- 序列化时对JMX的TablularData做特别支持!
- 序列化对异常类Throwable及派生类做特别支持

New Feature
-序列化输出时支持ValueFilter
- 序列化输出时支持NameFilter
- Parser提供扩展机制
- Parser支持TypeReference指定类型信息。

How to get it?
If you're Maven user, just use our maven repository(http://code.alibabatech.com/mvn/releases/) with folloging dependency
<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.0.5</version>
</dependency>


Binary http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/1.0.5/fastjson-1.0.5.jar
Source http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/1.0.5/fastjson-1.0.5-sources.jar

Demo 1 (TypeReference)
public static class Bean {
    private int    id;
    private String name;
    public Bean(){
    }
    public Bean(int id, String name){
        this.id = id;
        this.name = 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;}
}

/////////////////////

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;

String text;

{
    List list = new ArrayList();
    List mapList = new ArrayList();
    
    Map<String, Bean> map = new HashMap<String, Bean>();
    map.put("a", new Bean(123, "马加爵"));
    map.put("b", new Bean(234, "药家鑫"));
    map.put("c", new Bean(456, "刘+W"));
    
    mapList.add(map);
    
    list.add(mapList);

    text = JSON.toJSONString(list);
}

System.out.println(text);

// text = [[{"b":{"name":"药家鑫","id":234},"c":{"name":"刘+伟","id":456},"a":{"name":"马加爵","id":123}}]]
List<List<Map<String, Bean>>> list = JSON.parseObject(text, new TypeReference< List<List<Map<String, Bean>>> >() {}); // 注意这里
Map<String, Bean> map = list.get(0).get(0);

Assert.assertEquals(3, map.size());

Assert.assertEquals(123, ((Bean) map.get("a")).getId());
Assert.assertEquals(234, ((Bean) map.get("b")).getId());
Assert.assertEquals(456, ((Bean) map.get("c")).getId());

Assert.assertEquals("马加爵", ((Bean) map.get("a")).getName());
Assert.assertEquals("药家鑫", ((Bean) map.get("b")).getName());
Assert.assertEquals("刘+W", ((Bean) map.get("c")).getName());


Demo2 NameFilter
NameFilter filter = new NameFilter() {

    public String process(Object source, String name, Object value) {
        if (name.equals("id")) {
            return "ID";
        }

        return name;
    }

};

SerializeWriter out = new SerializeWriter();
JSONSerializer serializer = new JSONSerializer(out);
serializer.getNameFilters().add(filter);

Map<String, Object> map = new HashMap<String, Object>();
map.put("id", 0);
serializer.write(map);

String text = out.toString();
Assert.assertEquals("{\"ID\":0}", text);


Demo 3 ValueFilter
ValueFilter filter = new ValueFilter() {

    public Object process(Object source, String name, Object value) {
        if (name.equals("name")) {
            return null;
        }

        return value;
    }

};

SerializeWriter out = new SerializeWriter();
JSONSerializer serializer = new JSONSerializer(out);
serializer.getValueFilters().add(filter);

Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "AA");
serializer.write(map);

String text = out.toString();
Assert.assertEquals("{}", text);
分享到:
评论
12 楼 Fly_m 2011-06-17  
你好,我发了一个短消息,给你。关于 fastjson在toJSON上的性能考虑,期待你的回复哈:)
11 楼 qq396151722 2011-06-13  
wenshao 写道
sohuexe 写道
太变态了吧,怎么尽是马加爵,药家鑫呢。....弱弱的问是否能克服对循环引用的呢?


目前没有加入循环引用检测的功能

这么牛!!!!!
10 楼 vb2005xu 2011-06-13  
顶起2个精华帖
9 楼 aoliwen521 2011-06-13  
之前用了1.04.。。。
8 楼 wenshao 2011-06-12  
sdtm1016 写道
http://jsonic.sourceforge.jp/index.html#releasenote  这个也不错


谢谢推荐,粗看API,感觉思路和我的差不多,其中有值得学习借鉴的地方。再次表示感谢!
7 楼 sdtm1016 2011-06-12  
http://jsonic.sourceforge.jp/index.html#releasenote  这个也不错
6 楼 key232323 2011-06-11  
linux下转移字符貌似处理有问题,

比如返回一个文件路径

/opt/dir1

json就会转成\\opt\\dir1?
5 楼 xfei6868 2011-06-10  
支持! 看过 温少写过的关于多线程的电子书。

不知道这本书还有没有后续版本更深入的介绍多线程。
4 楼 lqixv 2011-06-10  
wangchengyong 写道
以使用作支持

+1
3 楼 wenshao 2011-06-10  
sohuexe 写道
太变态了吧,怎么尽是马加爵,药家鑫呢。他的性能也如此变态吗?弱弱的问是否能克服对循环引用的呢?


目前没有加入循环引用检测的功能
2 楼 sohuexe 2011-06-10  
太变态了吧,怎么尽是马加爵,药家鑫呢。他的性能也如此变态吗?弱弱的问是否能克服对循环引用的呢?
1 楼 wangchengyong 2011-06-10  
以使用作支持

相关推荐

    阿里巴巴开源fastjson

    《阿里巴巴开源Fastjson详解》 Fastjson,作为阿里巴巴开源的一款高效、功能强大的JSON库,它在Java开发领域中被广泛使用。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其简洁明了的特性,...

    阿里巴巴json解析 fastjson.jar

    而阿里巴巴的Fastjson库,便是针对Java平台设计的一款高性能的JSON解析和生成工具,它以其高效、易用的特点,深受开发者喜爱。 一、Fastjson简介 Fastjson是阿里巴巴开源的一个Java语言编写的高性能功能完备的JSON...

    阿里巴巴开源的FastJson 1反序列化漏洞复现流程

    包含RMI服务所需的内容和测试使用的攻击FastJson1反序列化漏洞的Java文件

    阿里开源项目fastjson

    Fastjson是阿里巴巴开源的一款高性能的Java JSON库,它设计的主要目标是处理JSON数据,提供快速的性能和简洁的API。作为一个Java开发者,理解和掌握Fastjson对于日常开发工作非常有帮助,尤其是在处理JSON序列化和反...

    阿里巴巴(alibaba)fastjson -1.2.45.jar 包

    1.基本的序列化 String objJson = JSON.toJSONString(Object object); 2反序列化(反序列化就是把JSON格式的字符串转化为Java Bean对象) User user1 = JSON.parseObject(userJson, User.class); ...

    阿里巴巴 fastJson jar包

    阿里巴巴的Fastjson是一款高效、功能丰富的JSON库,广泛应用于Java开发中。它的主要目标是提供快速的性能,轻量级的API以及对Java对象和JSON数据之间的无缝转换。Fastjson在处理大规模数据序列化和反序列化时表现...

    阿里巴巴fastjson-1.2.83.jar

    阿里巴巴1.2.80及之前版本存在高危漏洞,已发布最新的1.2.83版本,供需要的各位下载使用。

    阿里巴巴开源的Java的JSON处理器 fastjson.zip

    fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。主要特点:快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)强大(支持普通JDK类包括任意Java Bean ...

    阿里巴巴JSON的jar包 fastjson-1.1.40.jar

    阿里巴巴JSON的jar包 fastjson-1.1.40.jar。 免费下载阿里巴巴JSON的jar包,有什么不懂可以下面留言问我,亲测可用。我们公司做项目的时候经常用到,集成的东西挺多 阿里巴巴json

    阿里巴巴fastjson

    免费版阿里巴巴fastjson下载免费版阿里巴巴fastjson下载免费版阿里巴巴fastjson下载免费版阿里巴巴fastjson下载免费版阿里巴巴fastjson下载免费版阿里巴巴fastjson下载

    fastjson各版本jar包以及使用方法

    Fastjson是阿里巴巴开源的一款高性能的JSON解析库,它支持Java对象与JSON之间的相互转换。在Java开发中,JSON作为一种轻量级的数据交换格式,广泛应用于前后端数据交互、存储及序列化。Fastjson因其高效、便捷的特性...

    fastjson最新版本jar包

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

    阿里巴巴fastjson的jar包

    **Fastjson:阿里巴巴的强大JSON库** Fastjson是阿里巴巴开发的一款高效、功能丰富的JSON解析库,广泛应用于Java开发中。它提供了快速的性能,简洁的API,使得JSON与Java对象之间的转换变得异常简单。Fastjson的...

    fastjson的jar包(alibaba.fastson引用所需jar包).rar

    Fastjson是阿里巴巴开源的一个高性能的JSON库,它的主要功能包括JSON到Java对象的映射和Java对象到JSON字符串的转换。这个库以其出色的性能和简洁的API设计,在Java社区中广受欢迎。相较于其他如net.sf.json等库,...

    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.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版本

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

    Fastjson是阿里巴巴开发的一个开源项目,它是一个Java语言编写的高性能功能完备的JSON库。Fastjson能够将Java对象转换为JSON字符串,也能将JSON内容转换为对应的Java对象,使得在处理JSON数据时更加方便快捷。由于其...

    fastjson-阿里巴巴

    由于Fastjson出自阿里巴巴,因此它拥有强大的社区支持,遇到问题时,可以在官方论坛或者开源社区找到解决方案。同时,阿里巴巴还会定期维护和更新Fastjson,确保其兼容性和稳定性。 总之,Fastjson作为阿里巴巴的...

    fastjson-1.1.jar 阿里巴巴

    fastjson 阿里巴巴开发的,号称 解析json速度快。

    fastjson2-2.0.39.zip

    在Java世界里,阿里巴巴开源的Fastjson库因其高效、便捷的特性,成为了开发者处理JSON的首选工具之一。本文将深入探讨Fastjson2-2.0.39版本,解析其核心功能与使用技巧。 Fastjson是阿里巴巴的一个高性能的JSON库,...

Global site tag (gtag.js) - Google Analytics