我正在使用Spring Boot和Spring Framework(spring-boot-starter-parent 2.1.6.RELEASE)开发Rest Client,我有一个表示响应对象的类,如下所示:
public class ValidateResponse { private String ResponseCode; private String ResponseDesc; //getters and setters //constructors using fields //empty constructor }
我正在为外部api创建网络挂钩,并且需要为特定端点返回JSON对象(JSON对象属性必须以大写字母开头)。我正在调用从PostMapping
嵌套在RequestMapping
根路径中的方法返回对象:
@PostMapping("hooks/validate") public ValidateResponse responseObj(@RequestHeader MapheadersObj) { ValidateResponse respOnse= new ValidateResponse("000000", "Success"); logger.info("Endpoint = hooks/validate | Request Headers = {}", headersObj); return response; }
但是,当我从邮递员到达终点时,我得到了重复的varialbes
{ "ResponseCode": "000000", "ResponseDesc": "Success", "responseCode": "000000", "responseDesc": "Success" }
我知道pojo-json转换是由spring处理的,但是我不明白为什么转换会产生重复的变量。
注意:我知道使用最佳命名变量标准(camelCasing)不会声明ResponseDesc
和ResponseCode
。
我已经按照Java语言规范进行了一些挖掘
标识符是Java字母和Java数字的无限长度序列,其中第一个必须是Java字母。
和
“ Java字母”包括大写和小写的ASCII拉丁字母AZ(\ u0041- \ u005a)和az(\ u0061- \ u007a),并且由于历史原因,ASCII下划线(_或\ u005f)和美元符号($或\ u0024)。$字符仅应在机械生成的源代码中使用,或很少用于访问旧系统上的现有名称。
因此,我假设它在语法上正确地使用Camelcase
[需要对此澄清]格式定义变量。
我正在考虑必须手动创建JSON对象,但我想首先了解此行为的原因。任何指针表示赞赏。