FastJson 栽坑汇总

1、Request(该类型是webmagic框架定义的)经过redis消息传送后,其中的post参数(原本是NameValuePair[]类型数据)会转变为JSONArray类型数据,导致之后httpclient获取post参数数据进行NameValuePair[]强转操作报错。

下边是request的结构,set和get方法省略

public class Request {
    private String url;
    private String method;
    /**
     * Store additional information in extras.
     */
    private Map<String, Object> extras;
    /**
     * Priority of the request.<br>
     * The bigger will be processed earlier. <br>
     * @see us.codecraft.webmagic.scheduler.PriorityScheduler
     */
    private long priority;
}

NameValuePair[]存储在map中。

原因:后来查看redis的push方法,发现同事对它进行了封装,使用fastjson将request序列化为一个字符串,然后存储在redis中,而由于map的value是object类型即泛型,fastjson对泛型的处理是

Object对象类型-->JSONObject

Object[]数组类型-->JSONArray

还有就是基本数据类型、String、BigDecimal等等
所以产生了如上的错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值