我正在尝试使用下面的代码将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" }


那么我应该怎么做才能防止出现这种双重密码?

最佳答案

出现此问题的原因是字段属性名称中使用了大写字母。
只需在Request类的每个字段中使用@JsonProperty批注,它将仅反序列化为给定名称。

例如。:

class Request{
    @JsonProperty("MAC")
    private String mac;

}

10-06 14:21