json转换遇到的一个坑记录下来

2 篇文章 0 订阅

昨天在工作中遇到一个一个需要解析json字符串的问题,以前也遇到过,然后也解决了;突然这次就不行了,然后一直在网上找资料。然后一直也没有解决的方案;花了我一下午的时间,就有些难受了;

com.alibaba.fastjson.JSONObject cannot be cast toJSONArray

之前一直报这个错误,怎么改都不行
解析代码

JSONObject welfare = JSONObject.parseObject(one.getWelfare());
      JSONArray luckDraw = welfare.getJSONArray("PAGEANT");
      if (luckDraw != null && !luckDraw.isEmpty()) {
          List<ActivityTime> actPrizeList = new ArrayList<>();
          luckDraw.forEach(luck -> {
              JSONObject luckInfo =  (JSONObject) luck;
              ActivityTime actPrize = luckInfo.toJavaObject(ActivityTime.class);
              actPrizeList.add(actPrize);
          });
          one.setActPrizeList(actPrizeList);
      }

需要解析从数据库查询来说json字符串为

{"PAGEANT":{"JOIN_END_DATE":"2020-3-25 00:00:00","VOTE_END_DATE":"2020-3-25 10:00:00","JOIN_START_DATE":"2020-3-25 00:00:00","VOTE_START_DATE":"2020-3-25 10:00:00"]}

怎么弄也解决不了,然后第二天继续找解决方案

 JSONObject welfare = JSONObject.parseObject(one.getWelfare());
         List<ActivityTime> pageant = JSON.parseArray(welfare.getString("PAGEANT"), ActivityTime.class);
         System.out.println(pageant.size());
         System.out.println(pageant.get(0));

然后我换了一种解决方案
报错类型终于不同了,瞬间就感觉松了口气
报错信息为 :

com.alibaba.fastjson.JSONException: exepct '[', but {, type : class 

虽然报错了,当终归有提示信息;
这个意思就是:想要是的“【】”我给的却是“{}”这就是初始传值的问题了;然后我看了下数据库,果然是格式错了,应该改成这个样子:

{"PAGEANT":[{"JOIN_END_DATE":"2020-3-25 00:00:00","VOTE_END_DATE":"2020-3-25 10:00:00","JOIN_START_DATE":"2020-3-25 00:00:00","VOTE_START_DATE":"2020-3-25 10:00:00"}]}

少了个“【】”之后就解决了,记录下这个坑,继续改下个bug

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值