JavaJSON写双

JavaJSON写双,java,json,double,writing,Java,Json,Double,Writing,我正试图用下面的代码将java对象反序列化为JSON对象,我发现以大写字母开头的参数是双精度编写的。比如, Request req = new Request(); req.setMAC("abcdef"); req.setMACParams("term:id:orderno"); req.setOrderNo("999xdef123"); final ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeV

我正试图用下面的代码将java对象反序列化为JSON对象,我发现以大写字母开头的参数是双精度编写的。比如,

Request req = new Request();
req.setMAC("abcdef");
req.setMACParams("term:id:orderno");
req.setOrderNo("999xdef123");

final ObjectMapper mapper = new ObjectMapper(); 

String json = mapper.writeValueAsString(req);
json字符串的内部:

{ "MAC":"abcdef","MACParams":"term:id:orderno","OrderNo":"999xdef123","mac":"abcdef","macparams":"term:id:orderno","orderno":"999xdef123" }

那么我应该怎么做来防止这种双重代码呢?

由于字段属性名称中使用了大写字母,所以出现了这个问题。 只需在请求类的每个字段中使用
@JsonProperty
注释,它就会反序列化为给定的名称

例如:


您的类请求中是否有getter和setter,但这些getter不遵循JavaBean规则,
字段“MAC”中的getMAC和setMAC是正确的,但是“getMAC”将在结果中生成两次MAC。

hmm java区分大小写,
MAC
不同于
MAC
。。。不确定问题是什么…张贴一个完整的最小的例子再现问题。如果你不发布代码,我们就看不到。你发布的几行代码甚至都不是有效的Java代码。我不允许发布机密代码,所以我放了一个示例代码。我想我的问题很清楚,不管它是否有效,因为它很简单,但我已经解决了。
class Request{
    @JsonProperty("MAC")
    private String mac;

}