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

fastjson发布1.1.22版本

阅读更多
Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。

Bug
-某些场景下反序列化Set<String>出错
Improvement
-序列化支持Clob对象
New Feature
-序列化和反序列化支持Calendar

下载
你可以从以下地址中下载fastjson:
Maven中央仓库 http://repo1.maven.org/maven2/com/alibaba/fastjson/
Alibaba OpenSesame开源平台 http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/

Maven
配置pom.xml文件,在dependencies中加入:
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.1.22</version>
</dependency>


源码
https://github.com/AlibabaTech/fastjson
分享到:
评论
25 楼 vipcxj 2015-10-22  
1.2.7版本
出现栈溢出错误~
估计是没有检测到循环引用,于是无限递归下去了。用例就是最默认的配置,没有开启什么关闭循环引用特征。其实就是因为听说这个默认支持循环引用,所以才放弃坑爹的jackson,转而用这个,结果这个直接就堆栈溢出了,好生失望~
24 楼 ccvcd 2014-03-17  
是否可以考虑增加以下新功能


以前系统使用json-lib包,现在想使用fastjson包,在做调整时,发现fastjson还是有点不适应,fastjson是否可以考虑增加以下新功能
1.对流属性的支持
流属性经过处理,变成字符串信息进行输出,这样就需要对特定属性的类型进行序列化和反序列化定制
public class Person {
private String name;
private InputStream image;
protected String getName() {
return name;
}
protected void setName(String name) {
this.name = name;
}
protected InputStream getImage() {
return image;
}
protected void setImage(InputStream image) {
this.image = image;
}
}
经过序列化后,希望的结果:
{name:"zhangsan",image:"base64:xsssswww"}
2.反序列化时,可以根据属性名称来指定类型。
为了兼容老系统,对于List Map 的属性,没有使用泛型,这样就需要在反序列化时来指定具体的类型。

public class JsonStroe {
private List rec;
public void setRec(List items) {
this.rec = items;
}
public List getRec() {
return rec;
}
}
public class KeyValue {
private String key;
private String value;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
输入值:{rec:[{key:"f",value:"f"}]}

希望可以指定 rec:KeyValue.class 这样,反序列化rec属性内容自动变成KeyValue的类型,如果在定义rec属性时,使用泛型,fastjson可以把rec属性内容自动变成KeyValue的类型,这样就需要改原有的业务代码。

以上问题还请温少给个建议。
23 楼 yunhaifeiwu 2012-10-10  
wenshao 写道
目前还不支持

谢谢及时回复。期待有这个功能。
22 楼 yunhaifeiwu 2012-10-10  
补充使用场景: 常常 在某个类中,使用了第三方的组件。序列化通常是成功的,可反序列化时,由于该组件的构造函数不支持而失败。 当然解决办法是,另写专门序列化的类。这工作量很大。如果fastjson 在反序列化时,能加入值过滤,属性过滤器什么的,能减轻工作量。
21 楼 wenshao 2012-10-10  
目前还不支持
20 楼 yunhaifeiwu 2012-10-10  
请问:在序列问时,使用了值过滤器 更改了值类型,在反序列化,即解析JSON文本时,如何还原?
例:
public class User implements Serializable {
    
    private String userid;
    private String username;
    private ImageIcon icon;
    //省略getter and setter 
}


下面是测试代码
public static void main(String[] args) {
        User u=new User("zhang");
        u.setUsername("张三");
        UserDetail ud=new  UserDetail();
        ud.setAddress("中国");

        ImageIcon icn=new ImageIcon("1.jpg");
        u.setIcon(icn);
        SerializeWriter out = new SerializeWriter();
        JSONSerializer serializer = new JSONSerializer(out);
        ValueFilter filter = new ValueFilter() 
        {//该过滤器,让value的ImageIcon值变成了  表达文件地址的字符串值。
            public Object process(Object source, String name, Object value) {
                if (name.equals("icon")) {
                    ImageIcon i= (ImageIcon) value;
                    return i.getDescription();
                }
                return value;
            }

        };
        String s=JSON.toJSONString(u, filter,SerializerFeature.PrettyFormat,
                SerializerFeature.WriteClassName);
        System.out.println(s);        
        System.out.println();
    }


我想要的是 ,需要把  JSON.parse(s) 还原成User 的实例。问题没发现,
可以在解析时,插入一个与ValueFilter 相反的自定义函数,当遇到Icon属性且是字符串时,new ImageIcon(iconFileString).
19 楼 beming 2012-08-23  
请问是不是不支持List的SerializeConfig,指定的mapping属性??
18 楼 beming 2012-08-23  
请问这个应该怎么用的呢?


beming 写道
1.1.23版本

import java.io.Serializable;
import com.alibaba.fastjson.annotation.JSONField;
public class JsonModel implements Serializable {
	private static final long serialVersionUID = 4859971648047607860L;
	private String kh;
	private String yl;
	@JSONField(name = "KH")
	public String getKh() {
		return kh;
	}
	@JSONField(name = "KH")
	public void setKh(String kh) {
		this.kh = kh;
	}
	@JSONField(name = "YL")
	public String getYl() {
		return yl;
	}
	@JSONField(name = "YL")
	public void setYl(String yl) {
		this.yl = yl;
	}	
}


public static SerializeConfig mapping = new SerializeConfig();
List<Map<String, Object>> list = ...;//从数据库中查询,返回的内容
//((KH=1,YL=0,XZ=XXX,DX=XXX),(KH=2,YL=0,XZ=XXX,DX=XXX)...)
mapping = new SerializeConfig();
Map<String, String> tmap = new HashMap<String, String>();
tmap.put("KH", "KH");
tmap.put("YL", "YL");
//定义只是返回KH和YL两个变量的JSON:
mapping.put(JsonModel.class, new JavaBeanSerializer(JsonModel.class, tmap));
String rstStr = JSON.toJSONString(list, mapping);

发现循环到一定数量,会将XZ的也会输出来,循环一定数量又将XZ输出来……应该是个bug,明天我确认一下。

17 楼 beming 2012-08-22  
1.1.23版本

import java.io.Serializable;

import com.alibaba.fastjson.annotation.JSONField;

public class JsonModel implements Serializable {

	private static final long serialVersionUID = 4859971648047607860L;
	private String kh;
	private String yl;
	
	@JSONField(name = "KH")
	public String getKh() {
		return kh;
	}
	@JSONField(name = "KH")
	public void setKh(String kh) {
		this.kh = kh;
	}
	@JSONField(name = "YL")
	public String getYl() {
		return yl;
	}
	@JSONField(name = "YL")
	public void setYl(String yl) {
		this.yl = yl;
	}	
}


public static SerializeConfig mapping = new SerializeConfig();
List<Map<String, Object>> list = ...;//从数据库中查询,返回的内容
//((KH=1,YL=0,XZ=XXX,DX=XXX),(KH=2,YL=0,XZ=XXX,DX=XXX)...)
mapping = new SerializeConfig();
Map<String, String> tmap = new HashMap<String, String>();
tmap.put("KH", "KH");
tmap.put("YL", "YL");
//定义只是返回KH和YL两个变量的JSON:
mapping.put(JsonModel.class, new JavaBeanSerializer(JsonModel.class, tmap));
String rstStr = JSON.toJSONString(list, mapping);

发现循环到一定数量,会将XZ的也会输出来,循环一定数量又将XZ输出来……应该是个bug,明天我确认一下。
16 楼 wenshao 2012-08-20  
fastjson 1.1.6之后加上了循环引用检测的功能,这会影响序列化的性能,如果你的对象确保没有循环应用,可以加上这个特定,会提升性能:DisableCircularReferenceDetect

wenshao 写道
希望你提供testcase,让我了解慢的原因,同时建议你使用fastjson 1.1.23版本做测试。

白色毒药 写道
我其实并不在意“他们的”测试。我认为关键是对象的多样性,而非书写测试的复杂度。


就我们实际项目中的测试结果来看:
简单对象的序列化,FJ确实比Jackson快
但是相对复杂的对象,数十个字段,有时候是对象中有引用的子对象的情况,Jackson 比 FJ 快 1-2倍
所以我问的你‘测试的例子’,其实想知道你在实际项目中对比测试的对象的类型情况。

从目前的测试结果来看,对于我来说,对前端返回的对象会比较简单,适合FJ。而后端序列化的比较复杂,FJ并不合适。



wenshao 写道
当然充分测试过,我猜测是你测试的问题。

这里是各种java序列化的性能对比,其中jackson的作者Tatu也参与其中的。
https://github.com/eishay/jvm-serializers/wiki/Staging-Results

这里是他们的测试代码:https://github.com/eishay/jvm-serializers

这里有我测试用的testcase :https://github.com/AlibabaTech/fastjson/blob/master/src/test/java/com/alibaba/json/test/benchmark/BenchmarkTest.java

你也可以去看他们讨论组:https://groups.google.com/group/java-serialization-benchmarking。


白色毒药 写道
好像没快。你能把你自己写的测试比较代码贴出来看看么

白色毒药 写道
1. 确实快了点,原因是?
2. 就算这样,也还是比jackson的ObjectMapper方式慢的多.你自己真的在实际系统中充分测试过么?
新的测试:

def mapping = new SerializeConfig()
        JSON.toJSONStringZ(new PlayerExtraBag(), mapping)
        long now = System.currentTimeMillis()
        10000.times {
            JSON.toJSONStringZ(player, mapping)
        }
        println(System.currentTimeMillis() - now)

        def reader = new ObjectMapper()
        now = System.currentTimeMillis()
        10000.times {
            reader.writeValueAsString(player)
        }
        println(System.currentTimeMillis() - now)


3006 -- fj
700  -- jackson

wenshao 写道
排除掉第一次调用,重新测试!

白色毒药 写道
关于速度快有点大言不惭啊
1.1.15版本

用我们的项目中的几个类做了测试, 比 org.json 的还不如

long now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            JSON.toJSONStringZ(player, mapping, SerializerFeature.WriteMapNullValue, SerializerFeature.SortField);
        }
        System.out.println(System.currentTimeMillis() - now);

        now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            new JSONObject(player).toString();
        }
        System.out.println(System.currentTimeMillis() - now);


output :
2206
1210




15 楼 wenshao 2012-08-20  
希望你提供testcase,让我了解慢的原因,同时建议你使用fastjson 1.1.23版本做测试。

白色毒药 写道
我其实并不在意“他们的”测试。我认为关键是对象的多样性,而非书写测试的复杂度。


就我们实际项目中的测试结果来看:
简单对象的序列化,FJ确实比Jackson快
但是相对复杂的对象,数十个字段,有时候是对象中有引用的子对象的情况,Jackson 比 FJ 快 1-2倍
所以我问的你‘测试的例子’,其实想知道你在实际项目中对比测试的对象的类型情况。

从目前的测试结果来看,对于我来说,对前端返回的对象会比较简单,适合FJ。而后端序列化的比较复杂,FJ并不合适。



wenshao 写道
当然充分测试过,我猜测是你测试的问题。

这里是各种java序列化的性能对比,其中jackson的作者Tatu也参与其中的。
https://github.com/eishay/jvm-serializers/wiki/Staging-Results

这里是他们的测试代码:https://github.com/eishay/jvm-serializers

这里有我测试用的testcase :https://github.com/AlibabaTech/fastjson/blob/master/src/test/java/com/alibaba/json/test/benchmark/BenchmarkTest.java

你也可以去看他们讨论组:https://groups.google.com/group/java-serialization-benchmarking。


白色毒药 写道
好像没快。你能把你自己写的测试比较代码贴出来看看么

白色毒药 写道
1. 确实快了点,原因是?
2. 就算这样,也还是比jackson的ObjectMapper方式慢的多.你自己真的在实际系统中充分测试过么?
新的测试:

def mapping = new SerializeConfig()
        JSON.toJSONStringZ(new PlayerExtraBag(), mapping)
        long now = System.currentTimeMillis()
        10000.times {
            JSON.toJSONStringZ(player, mapping)
        }
        println(System.currentTimeMillis() - now)

        def reader = new ObjectMapper()
        now = System.currentTimeMillis()
        10000.times {
            reader.writeValueAsString(player)
        }
        println(System.currentTimeMillis() - now)


3006 -- fj
700  -- jackson

wenshao 写道
排除掉第一次调用,重新测试!

白色毒药 写道
关于速度快有点大言不惭啊
1.1.15版本

用我们的项目中的几个类做了测试, 比 org.json 的还不如

long now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            JSON.toJSONStringZ(player, mapping, SerializerFeature.WriteMapNullValue, SerializerFeature.SortField);
        }
        System.out.println(System.currentTimeMillis() - now);

        now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            new JSONObject(player).toString();
        }
        System.out.println(System.currentTimeMillis() - now);


output :
2206
1210




14 楼 白色毒药 2012-08-20  
我其实并不在意“他们的”测试。我认为关键是对象的多样性,而非书写测试的复杂度。


就我们实际项目中的测试结果来看:
简单对象的序列化,FJ确实比Jackson快
但是相对复杂的对象,数十个字段,有时候是对象中有引用的子对象的情况,Jackson 比 FJ 快 1-2倍
所以我问的你‘测试的例子’,其实想知道你在实际项目中对比测试的对象的类型情况。

从目前的测试结果来看,对于我来说,对前端返回的对象会比较简单,适合FJ。而后端序列化的比较复杂,FJ并不合适。



wenshao 写道
当然充分测试过,我猜测是你测试的问题。

这里是各种java序列化的性能对比,其中jackson的作者Tatu也参与其中的。
https://github.com/eishay/jvm-serializers/wiki/Staging-Results

这里是他们的测试代码:https://github.com/eishay/jvm-serializers

这里有我测试用的testcase :https://github.com/AlibabaTech/fastjson/blob/master/src/test/java/com/alibaba/json/test/benchmark/BenchmarkTest.java

你也可以去看他们讨论组:https://groups.google.com/group/java-serialization-benchmarking。


白色毒药 写道
好像没快。你能把你自己写的测试比较代码贴出来看看么

白色毒药 写道
1. 确实快了点,原因是?
2. 就算这样,也还是比jackson的ObjectMapper方式慢的多.你自己真的在实际系统中充分测试过么?
新的测试:

def mapping = new SerializeConfig()
        JSON.toJSONStringZ(new PlayerExtraBag(), mapping)
        long now = System.currentTimeMillis()
        10000.times {
            JSON.toJSONStringZ(player, mapping)
        }
        println(System.currentTimeMillis() - now)

        def reader = new ObjectMapper()
        now = System.currentTimeMillis()
        10000.times {
            reader.writeValueAsString(player)
        }
        println(System.currentTimeMillis() - now)


3006 -- fj
700  -- jackson

wenshao 写道
排除掉第一次调用,重新测试!

白色毒药 写道
关于速度快有点大言不惭啊
1.1.15版本

用我们的项目中的几个类做了测试, 比 org.json 的还不如

long now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            JSON.toJSONStringZ(player, mapping, SerializerFeature.WriteMapNullValue, SerializerFeature.SortField);
        }
        System.out.println(System.currentTimeMillis() - now);

        now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            new JSONObject(player).toString();
        }
        System.out.println(System.currentTimeMillis() - now);


output :
2206
1210



13 楼 wenshao 2012-08-19  
当然充分测试过,我猜测是你测试的问题。

这里是各种java序列化的性能对比,其中jackson的作者Tatu也参与其中的。
https://github.com/eishay/jvm-serializers/wiki/Staging-Results

这里是他们的测试代码:https://github.com/eishay/jvm-serializers

这里有我测试用的testcase :https://github.com/AlibabaTech/fastjson/blob/master/src/test/java/com/alibaba/json/test/benchmark/BenchmarkTest.java

你也可以去看他们讨论组:https://groups.google.com/group/java-serialization-benchmarking。


白色毒药 写道
好像没快。你能把你自己写的测试比较代码贴出来看看么

白色毒药 写道
1. 确实快了点,原因是?
2. 就算这样,也还是比jackson的ObjectMapper方式慢的多.你自己真的在实际系统中充分测试过么?
新的测试:

def mapping = new SerializeConfig()
        JSON.toJSONStringZ(new PlayerExtraBag(), mapping)
        long now = System.currentTimeMillis()
        10000.times {
            JSON.toJSONStringZ(player, mapping)
        }
        println(System.currentTimeMillis() - now)

        def reader = new ObjectMapper()
        now = System.currentTimeMillis()
        10000.times {
            reader.writeValueAsString(player)
        }
        println(System.currentTimeMillis() - now)


3006 -- fj
700  -- jackson

wenshao 写道
排除掉第一次调用,重新测试!

白色毒药 写道
关于速度快有点大言不惭啊
1.1.15版本

用我们的项目中的几个类做了测试, 比 org.json 的还不如

long now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            JSON.toJSONStringZ(player, mapping, SerializerFeature.WriteMapNullValue, SerializerFeature.SortField);
        }
        System.out.println(System.currentTimeMillis() - now);

        now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            new JSONObject(player).toString();
        }
        System.out.println(System.currentTimeMillis() - now);


output :
2206
1210


12 楼 白色毒药 2012-08-19  
好像没快。你能把你自己写的测试比较代码贴出来看看么

白色毒药 写道
1. 确实快了点,原因是?
2. 就算这样,也还是比jackson的ObjectMapper方式慢的多.你自己真的在实际系统中充分测试过么?
新的测试:

def mapping = new SerializeConfig()
        JSON.toJSONStringZ(new PlayerExtraBag(), mapping)
        long now = System.currentTimeMillis()
        10000.times {
            JSON.toJSONStringZ(player, mapping)
        }
        println(System.currentTimeMillis() - now)

        def reader = new ObjectMapper()
        now = System.currentTimeMillis()
        10000.times {
            reader.writeValueAsString(player)
        }
        println(System.currentTimeMillis() - now)


3006 -- fj
700  -- jackson

wenshao 写道
排除掉第一次调用,重新测试!

白色毒药 写道
关于速度快有点大言不惭啊
1.1.15版本

用我们的项目中的几个类做了测试, 比 org.json 的还不如

long now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            JSON.toJSONStringZ(player, mapping, SerializerFeature.WriteMapNullValue, SerializerFeature.SortField);
        }
        System.out.println(System.currentTimeMillis() - now);

        now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            new JSONObject(player).toString();
        }
        System.out.println(System.currentTimeMillis() - now);


output :
2206
1210


11 楼 白色毒药 2012-08-19  
1. 确实快了点,原因是?
2. 就算这样,也还是比jackson的ObjectMapper方式慢的多.你自己真的在实际系统中充分测试过么?
新的测试:

def mapping = new SerializeConfig()
        JSON.toJSONStringZ(new PlayerExtraBag(), mapping)
        long now = System.currentTimeMillis()
        10000.times {
            JSON.toJSONStringZ(player, mapping)
        }
        println(System.currentTimeMillis() - now)

        def reader = new ObjectMapper()
        now = System.currentTimeMillis()
        10000.times {
            reader.writeValueAsString(player)
        }
        println(System.currentTimeMillis() - now)


3006 -- fj
700  -- jackson

wenshao 写道
排除掉第一次调用,重新测试!

白色毒药 写道
关于速度快有点大言不惭啊
1.1.15版本

用我们的项目中的几个类做了测试, 比 org.json 的还不如

long now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            JSON.toJSONStringZ(player, mapping, SerializerFeature.WriteMapNullValue, SerializerFeature.SortField);
        }
        System.out.println(System.currentTimeMillis() - now);

        now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            new JSONObject(player).toString();
        }
        System.out.println(System.currentTimeMillis() - now);


output :
2206
1210

10 楼 wenshao 2012-08-17  
排除掉第一次调用,重新测试!

白色毒药 写道
关于速度快有点大言不惭啊
1.1.15版本

用我们的项目中的几个类做了测试, 比 org.json 的还不如

long now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            JSON.toJSONStringZ(player, mapping, SerializerFeature.WriteMapNullValue, SerializerFeature.SortField);
        }
        System.out.println(System.currentTimeMillis() - now);

        now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            new JSONObject(player).toString();
        }
        System.out.println(System.currentTimeMillis() - now);


output :
2206
1210

9 楼 白色毒药 2012-08-16  
关于速度快有点大言不惭啊
1.1.15版本

用我们的项目中的几个类做了测试, 比 org.json 的还不如

long now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            JSON.toJSONStringZ(player, mapping, SerializerFeature.WriteMapNullValue, SerializerFeature.SortField);
        }
        System.out.println(System.currentTimeMillis() - now);

        now = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            new JSONObject(player).toString();
        }
        System.out.println(System.currentTimeMillis() - now);


output :
2206
1210
8 楼 wenshao 2012-08-15  
shenzhang722 写道
温少  有两个问题
1.不知道为何FastJSON序列化不支持带有中文包路径的类
2.循环引用的时候也还有点问题,貌似测试用例没有覆盖到


希望你反馈给我,在github上创建一个issue,或者直接联系我。
7 楼 shenzhang722 2012-08-14  
温少  有两个问题
1.不知道为何FastJSON序列化不支持带有中文包路径的类
2.循环引用的时候也还有点问题,貌似测试用例没有覆盖到
6 楼 zxh277100963 2012-07-23  
com.alibaba.fastjson.JSONException: write javaBean error
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:188)
at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:354)
at com.alibaba.fastjson.JSON.toJSONString(JSON.java:438)
at com.htsoft.test.system.AppUserDaoTestCase.testFastJson(AppUserDaoTestCase.java:241)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:240)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: com.alibaba.fastjson.JSONException: write javaBean error
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:188)
at com.alibaba.fastjson.serializer.ObjectFieldSerializer.writeProperty(ObjectFieldSerializer.java:112)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:175)
... 33 more
Caused by: com.alibaba.fastjson.JSONException: write javaBean error
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:188)
at com.alibaba.fastjson.serializer.ObjectFieldSerializer.writeProperty(ObjectFieldSerializer.java:112)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:175)
... 35 more
Caused by: com.alibaba.fastjson.JSONException: write javaBean error
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:188)
at com.alibaba.fastjson.serializer.ObjectFieldSerializer.writeProperty(ObjectFieldSerializer.java:112)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:175)
... 37 more
Caused by: com.alibaba.fastjson.JSONException: write javaBean error
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:188)
at com.alibaba.fastjson.serializer.ObjectFieldSerializer.writeProperty(ObjectFieldSerializer.java:112)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:175)
... 39 more
Caused by: com.alibaba.fastjson.JSONException: write javaBean error
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:188)
at com.alibaba.fastjson.serializer.MapSerializer.write(MapSerializer.java:146)
at com.alibaba.fastjson.serializer.ObjectFieldSerializer.writeProperty(ObjectFieldSerializer.java:112)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:175)
... 41 more
Caused by: com.alibaba.fastjson.JSONException: write javaBean error
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:188)
at com.alibaba.fastjson.serializer.ObjectFieldSerializer.writeProperty(ObjectFieldSerializer.java:112)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:175)
... 44 more
Caused by: java.lang.NullPointerException
at com.alibaba.fastjson.util.TypeUtils.isJSONTypeIgnore(TypeUtils.java:979)
at com.alibaba.fastjson.util.TypeUtils.isJSONTypeIgnore(TypeUtils.java:990)
at com.alibaba.fastjson.util.TypeUtils.computeGetters(TypeUtils.java:854)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.<init>(JavaBeanSerializer.java:64)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.<init>(JavaBeanSerializer.java:45)
at com.alibaba.fastjson.serializer.SerializeConfig.createJavaBeanSerializer(SerializeConfig.java:92)
at com.alibaba.fastjson.serializer.JSONSerializer.getObjectWriter(JSONSerializer.java:461)
at com.alibaba.fastjson.serializer.JSONSerializer.getObjectWriter(JSONSerializer.java:425)
at com.alibaba.fastjson.serializer.ObjectFieldSerializer.writeProperty(ObjectFieldSerializer.java:83)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:175)
... 46 more

温少能帮我看看什么问题了引起的

相关推荐

Global site tag (gtag.js) - Google Analytics