我想将映射到非常复杂的Object的sqlResult转换为JSON,以便将其保存到redis数据库中。现在我得到了错误
java.lang.IllegalArgumentException: class 'xx' declares multiple JSON fields named 'XX'
如果不按照错误' xx'中提到的类进行操作,如何解决此问题? 或者是其他可用的库,它们支持将对象转换为JSON和从JSON转换对象,并支持多个JSON字段名称,例如JSON-IO?
我使用以下建议的类 class A declares multiple JSON fields 更新了我的项目,以避免多个JSON字段。
但现在我又遇到了另一个问题 嵌套异常是:java.lang.StackOverflowError 对该问题的任何建议?因为我使用非常大的集合/对象进行转换。
答案 0 :(得分:9)
您没有发布非常详细的问题,所以我希望这会对您有所帮助:
您可能遇到的问题是该字段已存在于您扩展的类中。在这种情况下,该字段已存在于B类中。
说:
public class A extends B {
private BigDecimal netAmountTcy;
private BigDecimal netAmountPcy;
private BigDecimal priceTo;
private String segment;
private BigDecimal taxAmountTcy;
private BigDecimal taxAmountPcy;
private BigDecimal tradeFeesTcy;
private BigDecimal tradeFeesPcy;
// getter and setter for the above fields
}
其中B类似的(当然可能更重复):
public class B {
private BigDecimal netAmountPcy;
// getter and setter for the above fields
}
只需删除字段" netAmountPcy" A类,你仍然会有这个字段(因为它扩展了类)。