从结果中可以看到,JSONObject对Test对象进行序列化时,把fileName也当做属性了。

因为在接口中定义了一个get开头的方法,在父类中实现了该方法,导致JSONObject在序列化时将filenName当做属性看待

 import com.alibaba.fastjson.JSONObject;

 public class main {

     public static void main(String[] args){

         Test t=new main().new Test();
System.out.println(JSONObject.toJSONString(t)); }
public interface a{
public String getFileName();
} public class base implements a{
@Override
public String getFileName(){
System.out.println("");
return "";
}
} public class Test extends base{
public String a="";
public String b="";
public String c="";
} }

结果:

 {"a":"","b":"","c":"","fileName":""}
05-11 17:44