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