1、反序列化日期类型默认为当前日期
//反序列化日期的方法
JSONUtils.getMorpherRegistry().registerMorpher(
new DateMorpher(new String[] { "yyyy-MM-dd HH:mm:ss,SSS",
"yyyy-MM-dd HH:mm:ss" }), true);
JSONObject jsonObject = JSONObject.fromObject(strJson);
JSONArray jsonArray = JSONArray.fromObject(strJson);
JsonConfig config = new JsonConfig();
(T[]) JSONArray.toArray(jsonArray, config);
(T) JSONObject.toBean(jsonObject, config);
2、反序列化属性忽略大小写
static JavaIdentifierTransformer identifierTransformer = new JavaIdentifierTransformer() {
@Override
public String transformToJavaIdentifier(String str) {
char[] chars = str.toCharArray();
chars[0] = Character.toLowerCase(chars[0]);
return new String(chars);
}
};
JsonConfig config = new JsonConfig();
config.setJavaIdentifierTransformer(identifierTransformer);
3、反序列化嵌套结构
//主类
config.setRootClass(Customer.class);
//list属性
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("dataList", CustomerData.class);
config.setClassMap(classMap);
4、解决java.lang.NoSuchMethodException: Unknown property '*'
public class PropertyStrategyWrapper extends PropertySetStrategy {
private PropertySetStrategy original;
public PropertyStrategyWrapper(PropertySetStrategy original) {
this.original = original;
}
@Override
public void setProperty(Object o, String string, Object o1) throws JSONException {
try {
original.setProperty(o, string, o1);
} catch (Exception ex) {
//ignore
}
}
}

本文介绍了使用JSON反序列化处理日期类型、属性名大小写、嵌套结构及解决NoSuchMethodException的方法,帮助开发者掌握更高效的序列化技术。
9042

被折叠的 条评论
为什么被折叠?



