JSONObject.toJavaObject对首字母大写的属性设置失败
今天使用JSONObject.toJavaObject()方法试图将一个JSONObject对象装换为指定class对象,该对象属性如下所示 private Integer ID; private String fertilizerSiteName; private String userName; private Boolean sendOk; 转换后发现ID字段一直为null,然后我们跟踪代码发现,fastjson通过获取set开头的方法,然后通过字符串截取来获取属性(见com.alibaba.fastjson.util.DeserializeBeanInfo的DeserializeBeanInfo computeSetters(Class<?> clazz, Type type)方法),因为正常的命名习惯都是set然后属性首字母大写,正常这么写是没有问题的,不过这里我们的ID都是大写,他这里默认截取后首字母小写ID,就变成了iD再来做映射的时候就找不到字段了,代码如下 if (methodName.startsWith("set")) { char c3 = met....