错误信息com.google.gson.internal.LinkedTreeMap cannot be cast to com.



    String yxStrResult = HttpUtils.sendPost(YxUtils.url, map1);
// {"code":200,"result":"[{\"inventory\":90,\"skuId\":10040018},{\"inventory\":90,\"skuId\":10040020},{\"inventory\":0,\"skuId\":10040022},{\"inventory\":0,\"skuId\":10040023},{\"inventory\":90,\"skuId\":10308001}]"}
    Gson gosn = new Gson();
    KcGetEntity ku = gosn.fromJson(yxStrResult,KcGetEntity.class);
//ku.getResult():[{"inventory":90,"skuId":10040018},{"inventory":90,"skuId":10040020},{"inventory":0,"skuId":10040022},{"inventory":0,"skuId":10040023},{"inventory":90,"skuId":10308001}]

    List<KcGetResultEntity> ku1 = gosn.fromJson(ku.getResult(),List.class);
    for(KcGetResultEntity e: ku1){
    //以上都不会报错,当循环取值的时候 会出现上面的错误信息
            e.getInventory();
    }

正解如下:

        import com.google.gson.JsonArray;
        import com.google.gson.JsonElement;
        import com.google.gson.JsonParser;
        import com.alibaba.fastjson.JSON;
        import com.google.gson.Gson;

        List<KcGetResultEntity> list1 = new ArrayList<KcGetResultEntity>();  
            try {  
                Gson gson = new Gson();  
                JsonArray arry = new JsonParser().parse(ku.getResult()).getAsJsonArray();  
                        for (JsonElement jsonElement : arry) {  
                            list1.add(gson.fromJson(jsonElement, KcGetResultEntity.class));  
                        }  
                        if(list1 != null && list1.size()>0){
                            for(KcGetResultEntity kucun : list1){
                            // 此时取值就不会有错误
                                Map<String, Object> map2 = new HashMap<String, Object>();
                                map2.put("yxKc", kucun.getInventory());//库存
                                map2.put("cols1", "99999"+kucun.getSkuId());//skuId
                                map2.put("updateTime", new Date());
                                num = mallSpecDataService.updateBySkuId(map2);
                            }
                        }
                    } catch (Exception e) {  
                        e.printStackTrace();  
                    }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值