解析为json错误:无法调用no args构造函数

jfgube3f  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(357)

我有以下类,我想序列化为json,然后作为对象返回:

public class CustomerKeys2 {

    protected JAXBElement<String> customerIdPub;

    //getter & setter
}

我的序列化/反序列化代码如下

CustomerKeys2 customerKeys = new CustomerKeys2();
//getJaxbString just get a JAXBElement<String> from a regular String
customerKeys.setCustomerIdPub(getJaxbString("CustomerIdPub"));
Gson gson = new Gson();
String jsonString = gson.toJson(customerKeys);
CustomerKeys2 obj2 = gson.fromJson(jsonString, CustomerKeys2.class);

最后一行(gson.fromjson)抛出错误:

java.lang.RuntimeException: Unable to invoke no-args constructor for java.lang.Class<java.lang.String>. Register an InstanceCreator with Gson for this type may fix this problem.

这是因为customeridpub的类型是jaxbelement,而不仅仅是常规字符串。问题是我不能修改customerkeys2类。它是一个外部jar的一部分,我必须使用它作为它。
我已经尝试了其他库(flexjson,jackson…),但出现了相同的错误。
有解决办法吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题