当前位置: 首页 > 面试题库 >

类A声明多个JSON字段

伏子辰
2023-03-14
问题内容

我有一个类A,其中包含一些私有字段,而同一类扩展了另一个类B,它也具有一些在A类中的私有字段。

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创建JSON字符串时,出现以下异常:

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

如何解决这个问题?

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

我创建如下的json字符串:

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

这里obj是A类的对象


问题答案:

由于它们是私有字段,因此在创建jsonhtml" target="_blank">字符串时应该没有任何问题

我认为这句话是不对的,GSON在序列化时会查看对象的私有字段,这意味着包括了超类的所有私有字段,并且当您使用相同名称的字段时,它将引发错误。

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

private transient BigDecimal tradeFeesPcy;


 类似资料:
  • 问题内容: 在Java中,你可以在一个文件中定义多个顶级类,条件是其中最多一个是公共的(请参见JLS§7.6)。参见以下示例。 是否有此技术整洁名(类似于)? JLS表示系统可能会强制执行这些二级类不能为的限制,例如,它们不能被视为程序包专用。这真的在Java实现之间有所改变吗? 例如,PublicClass.java: 问题答案: 对于这种技术,我建议的名称(在一个源文件中包括多个顶级类)将是“

  • 问题内容: 我要实现的目标是创建一个包含多个功能的模块。 module.js: 我的问题是,这是一个对象类型,而这是一个URL字符串,但是当我遇到该问题时,它总是抱怨该类型是错误的。 在这种情况下,如何声明多个module.exports? 问题答案: 您可以执行以下操作: 要不就: 然后在调用脚本中:

  • 我正在对这些注释使用基本集成测试: 运行测试时,出现以下错误: 该错误是由以下注释引起的:SpringBootTest和DataMongoTest,包括BootstrapWith,如下所示: 我需要继续使用SpringBootTest进行SpringBootTest。WebEnvironment。RANDOM\u端口,但我还需要来自DataMongoTest的嵌入式mongodb 有什么建议吗?

  • 你好,Iam在spring(IntelliJ IDEA终极版)中使用AspectJ风格的AOP时遇到了麻烦。不使用方面时,输出与预期相同。但是当我将方面类受众声明为Bean时,我得到了Macbeth类的NoSuchBeanDefinitionException。 2017年8月27日上午9:38:39 org.springframework.context.annotationconfigappl

  • 问题内容: 对我的头衔表示歉意,我无法正确表达问题。 我已经看到有两种实现方式。首先通过表示您的类已实现来完成。第二个任务是让您自己声明完成任务。 为什么在第一种选择中,您可以简单地将其作为参数,而在第二种选择中,则必须麻烦自己创建对象? 首先: 第二: 问题答案: 在第一种方法中, 整个Activity类都 实现了该接口。您可以将每个View的设置 为此 ,并通过一种方法接收所有click事件,

  • 问题内容: 我开始关注Apple提供的iBook- on Swift。这本书说要创建一个空字典,应该使用与声明数组相同的方式: 我声明了一个空数组,如下所示: 但是在声明空字典时,出现语法错误: 如何声明一个空字典? 问题答案: ­ 注意 :如果要随着时间的推移更改字典的内容,则将其声明为(变量)。您 可以将 一个空字典声明为(常量),但是如果您打算随时间更改其内容,则毫无意义,因为常量在初始化后