2

我正在使用 Jython 对方法 toJson() 进行 Gson 调用。我使用 GsonBuilder 来创建 Gson 对象。问题是在调用该方法时,我得到一个“运行时错误:超出最大递归深度”。这来自 toJson 调用中的 getAdapter() 方法,当然这两种方法都是 Gson 类的一部分。

基本上,toJson 方法根据输入调用具有不同签名的类中的其他 toJson 方法。当然,Gson 是一个 jar,所以没有改变它,我没有看到 getAdapter 方法中递归的位置。有没有人做过这样的事情并且知道我可以使用的解决方法/hack?快速和肮脏很好,我只需要这个来证明概念。相关代码如下。

builder = GsonBuilder()
builder.registerTypeAdapter(tpj.Semicircles(0).class, app.SemicirclesTypeAdapter())
gson = builder.setPrettyPrinting().create()
payload = tp.RequestPayload()
payload.setFMI(sr)
json = gson.toJson(payload)
System.out.println(json)

tpj 是一个 python 模块,而 app 是我试图用 Jython 模拟的 Java 类。模拟 Gson 的东西太复杂了,这就是我使用 Jython 的原因。

4

0 回答 0