将java接口转换为Json

时间:2014-03-26 08:17:10

标签: java json interface gson jemos-podam

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

public interface CreditCardResource {
    ....
}

我尝试使用podam和gson为CreditCardResouce.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?

1 个答案:

答案 0 :(得分:1)

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

public interface Something {
    String toJson();
}

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

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