JSONObject.toBean反序列化属性大小写问题解决方案
static JavaIdentifierTransformer identifierTransformer = new JavaIdentifierTransformer() {
@Override
public String transformToJavaIdentifier(String str) {
char[] chars = str.toCharArray();
//首字母小写与java pojo类对应
chars[0] = Character.toLowerCase(chars[0]);
return new String(chars);
}
};
JSONObject jsonObject = JSONObject.fromObject(strJson);
//默认反序列化区分大小写
MyObject myObject= (MyObject) JSONObject.toBean(jsonObject,MyObject.class);
//方式二
JsonConfig config = new JsonConfig();
//重置JavaIdentifierTransformer
config.setJavaIdentifierTransformer(identifierTransformer);
config.setRootClass(MyObject.class);
//如果嵌套多层时加下面这个配置
Map<String,Class<?>> classMap = new HashMap<String,Class<?>>();
classMap.put("data", Test.class);
config.setClassMap(classMap);
MyObject myObject= (MyObject) JSONObject.toBean(jsonObject, config);