将java接口转换为Json

将java接口转换为Json,java,json,interface,gson,jemos-podam,Java,Json,Interface,Gson,Jemos Podam,我有一个名为CreditCardResource的接口,我想从中生成一个json public interface CreditCardResource { .... } 我尝试使用podam和gson为CreditCardResource.class生成json Podam生成如下错误: PodamFactoryImpl [WARN] Cannot instantiate an interface or abstract class. Returning null. 使用Gson,

我有一个名为
CreditCardResource
的接口,我想从中生成一个json

public interface CreditCardResource {
    ....
}
我尝试使用podam和gson为
CreditCardResource.class
生成json

Podam生成如下错误:

PodamFactoryImpl [WARN] Cannot instantiate an interface or abstract class. Returning null.
使用Gson,我得到以下错误:

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class

是否可以将
CreditCardResource.class
转换为json

json是一种特殊类型的结构化字符串,可以(除其他外)用来表示POJO的状态。接口只是一个契约,因此将其转换为JSON实际上没有意义。您可能想做的是在接口中定义一个方法,该方法返回使用该接口创建的具体对象的JSON表示。类似于(使用Gson):

现在,需要任何实现类来实现此方法,如下所示:

public class SomethingImpl implements Something {
   public String toJson() {
       Gson gson = new Gson();
       return gson.toJson(this);
   }
}

因此,您不能将接口jsonify化,请尝试concreate类。当我使用具体类尝试此操作时,我遇到了另一个错误:com.google.gson.internal.$gson$Types.resolve($gson$Types.java:375)上的线程“main”java.lang.StackOverflower中的异常最好显示您的代码。您根本无法,JSON是顾名思义的
JavaScript对象表示法
,接口无法实例化。不过,您可以尝试为它实现一个类。您不能将类或接口转换为JSON。只有对象才能转换为JSON。所以问题中缺少了一些东西。
public class SomethingImpl implements Something {
   public String toJson() {
       Gson gson = new Gson();
       return gson.toJson(this);
   }
}