我正在尝试使用下面的代码将java对象反序列化为JSON对象,并且我认识到以大写字母开头的参数已被写为double。例如;
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" }
那么我应该怎么做以防止这个双重代码?
答案 0 :(得分:1)
由于字段属性名称中使用的大写字母,会出现此问题。
只需在Request类的每个字段中使用@JsonProperty
注释,它就会反序列化为给定的名称。
E.g:
class Request{
@JsonProperty("MAC")
private String mac;
}
答案 1 :(得分:0)
你有吸气剂吗?您的类Request中的setter,但那些getter不遵循java bean规则, 该领域" MAC" getMAC和setMAC是正确的,但是" getMac"将在结果中生成两次mac。