java - A 类声明了多个 JSON 字段

标签 java json gson

我有一个 A 类,它有一些私有(private)字段,同一个类扩展了另一个 B 类,它也有一些属于 A 类的私有(private)字段。

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 类有一些属于 A 类的私有(private)字段

现在,当我尝试从上面的 A 类创建 JSON 字符串时,出现以下异常:

class com.hexgen.ro.request.A declares multiple JSON fields named netAmountPcy

如何解决这个问题?

由于它们是私有(private)字段,所以我猜在创建 json 字符串时应该没有任何问题,但我不确定。

我创建如下 json 字符串:

Gson gson = new Gson();
 tempJSON = gson.toJson(obj);

这里的obj是A类的对象

最佳答案

由于它们是私有(private)字段,因此在创建 json 字符串时应该没有任何问题

我不认为这个说法是正确的,GSON 在序列化时会查找对象的私有(private)字段,这意味着包含父类(super class)的所有私有(private)字段,并且当您有同名的字段时会引发错误。

如果您不想包含任何特定字段,则必须使用 transient 关键字对其进行标记,例如:

private transient BigDecimal tradeFeesPcy;

关于java - A 类声明了多个 JSON 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16476513/

相关文章:

java - 在myeclipse中从xsd生成java类

带标签的类内的 java 枚举

javascript - 如何比较 Mongoose 对象和 JSON 对象?

python (gspread) - 整个数据表放置在我的 Google Sheets 的一个单元格中,而不是单独的单元格中

java - 使用 gson 解析 JSONObject

java - 使用 Maven 从 pom.xml 构建项目后,我如何使用它的资源

xml - 如何从 json 文件(或 xml 文件)创建 vb.net 对象类

java - Android Studio MalformedJsonException

android - Gson 在 Android Studio 调试器中运行缓慢

java - 如何通过 Spring-Expression-Language 或其他方式根据 jobParameters 有条件地注入(inject) bean?