GSON java.lang.IllegalArgumentException:类'xx'声明名为'XX'的多个JSON字段和StackOverflowError

ima*_*088 1 java json gson

我想将映射到非常复杂的Object的sqlResult转换为JSON,以便将其保存到redis数据库中.现在我得到了错误

java.lang.IllegalArgumentException: class 'xx' declares multiple JSON fields named 'XX'
Run Code Online (Sandbox Code Playgroud)

如何在不修改错误'xx'中提到的类的情况下解决这个问题?
或者是其他可用的库,支持将对象转换为JSON并从JSON转换支持多个JSON字段名称,例如json-io?


我使用以下建议的类A更新了我的项目A声明了多个JSON字段以避免多个JSON字段.

但是现在我有另一个问题
嵌套异常是:java.lang.StackOverflowError对这个问题的任何建议?因为我使用非常大的集合/对象进行转换.

Bar*_*urg 10

您没有发布非常详细的问题,所以我希望这会对您有所帮助:

您可能遇到的问题是该字段已存在于您扩展的类中.在这种情况下,该字段已存在于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

}
Run Code Online (Sandbox Code Playgroud)

其中B类是类似的(当然可能更多重复):

public class B {
    private BigDecimal netAmountPcy;   
// getter and setter for the above fields

}
Run Code Online (Sandbox Code Playgroud)

只需删除字段"netAmountPcy"A类,您仍将拥有该字段(因为它扩展了该类).