严重: Resource read error: Could not load com/alibaba/fastjson parser deserializer Object Deserializer

fastjson 1.2.8:存在反序列化bug,
严重:资源读取错误:无法加载com/alibaba/fastjson解析器反序列化器对象串并转换器

反序列化的类中属性个数正好等于32或者是64的时候就会出错

问题在1.2.29中已经修复,原因是新加防重复功能时,在字段数量为32或者64时,计算本地变量出错了.
在这里插入图片描述
升级jar包版本到1.2.8以上的版本 后问题解决
删除maven中的1.2.8,重新配置高版本fastjson问题解决。希望对你有帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 导入fastjson库:可以通过Maven或Gradle进行导入,也可以将fastjson.jar文件手动添加到项目中。 2. 序列化对象:将Java对象转换为json字符串。 ```java Person person = new Person(); person.setName("Jack"); person.setAge(20); String jsonString = JSON.toJSONString(person); ``` 3. 反序列化对象:将json字符串转换为Java对象。 ```java String jsonString = "{\"name\":\"Jack\",\"age\":20}"; Person person = JSON.parseObject(jsonString, Person.class); ``` 4. 处理复杂对象:可以处理包含嵌套对象、集合、数组等的复杂Java对象。 ```java List<Person> personList = new ArrayList<>(); personList.add(new Person("Jack", 20)); personList.add(new Person("Tom", 25)); Map<String, Object> map = new HashMap<>(); map.put("personList", personList); String jsonString = JSON.toJSONString(map); Map<String, Object> resultMap = JSON.parseObject(jsonString, new TypeReference<Map<String, Object>>() {}); List<Person> resultPersonList = JSON.parseArray(JSON.toJSONString(resultMap.get("personList")), Person.class); ``` 5. 自定义序列化和反序列化:可以通过继承Serializer和Deserializer类来自定义序列化和反序列化的逻辑。 ```java public class DateSerializer implements Serializer<Date> { @Override public void write(JSONSerializer serializer, Date date, Object fieldName, Type fieldType, int features) throws IOException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = sdf.format(date); serializer.write(format); } } public class DateDeserializer implements ObjectDeserializer { @Override public Date deserialze(DefaultJSONParser parser, Type type, Object fieldName) { String dateString = parser.parseObject(String.class); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { return sdf.parse(dateString); } catch (ParseException e) { throw new RuntimeException(e); } } @Override public int getFastMatchToken() { return JSONToken.LITERAL_STRING; } } SerializeConfig config = new SerializeConfig(); config.put(Date.class, new DateSerializer()); ParserConfig.getGlobalInstance().putDeserializer(Date.class, new DateDeserializer()); ``` 以上是使用alibabafastjson2.0的基本操作,开发人员可以根据项目需求进行相应扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值