版本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);
分享到:
相关推荐
阿里巴巴旗下json工具类 fastjson 支付宝支付sdk 阿里巴巴旗下json工具类 fastjson 支付宝支付sdk
之所以这么贵,是因为这个包绝对的完整不会报错。 里面还有官方的地址。
阿里开源项目fastjson源码
1.基本的序列化 String objJson = JSON.toJSONString(Object object); 2反序列化(反序列化就是把JSON格式的字符串转化为Java Bean对象) User user1 = JSON.parseObject(userJson, User.class); ...
阿里巴巴的fastjson相关的jar包
阿里巴巴1.2.80及之前版本存在高危漏洞,已发布最新的1.2.83版本,供需要的各位下载使用。
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。主要特点:快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)强大(支持普通JDK类包括任意Java Bean ...
阿里巴巴JSON的jar包 fastjson-1.1.40.jar。 免费下载阿里巴巴JSON的jar包,有什么不懂可以下面留言问我,亲测可用。我们公司做项目的时候经常用到,集成的东西挺多 阿里巴巴json
免费版阿里巴巴fastjson下载免费版阿里巴巴fastjson下载免费版阿里巴巴fastjson下载免费版阿里巴巴fastjson下载免费版阿里巴巴fastjson下载免费版阿里巴巴fastjson下载
阿里巴巴开源包,fastjson的基础入门。 这里介绍 fastjson 用于生成和解析 JSON 数据的简单示例
阿里巴巴公司研发的fastjson1.2.2的jar包 以及源码包阿里巴巴公司研发的fastjson1.2.2的jar包 以及源码包阿里巴巴公司研发的fastjson1.2.2的jar包 以及源码包
fastjson最新版本jar包 fastjson-1.2.14.jar
fastjson 阿里巴巴开发的,号称 解析json速度快。
fastjson-阿里巴巴
https://blog.csdn.net/hykwhjc/article/details/81121224 fastJSON的使用
FASTJSON 阿里巴巴推出的 json解析工具
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-1.2.23.jar
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴开发。 包中包含fastjson-1.1.37.jar,fastjson-1.2.2.jar ,fastjson-1.2.2-sources.jar等