q***@sina.com
q***@sina.com
  • 发布:2024-03-23 20:59
  • 更新:2024-08-09 10:54
  • 阅读:609

java.lang.ClassCastException: io.dcloud.uniapp.vue.UTSReactiveJSONObject

分类:uni-app x

uniappx 模式下,使用字符串 转 对象输出,提示异常:error: java.lang.ClassCastException: io.dcloud.uniapp.vue.UTSReactiveJSONObject cannot be cast to uni.UNI97DAE78.ArticleDto‌,如果使用强类型 添加就正常,反序列化 字符串就报错。大神给看一下是什么 问题。感谢。

Hbuiler X 3.99版本

2024-03-23 20:59 负责人:无 分享
已邀请:
q***@sina.com

q***@sina.com (作者)

追加 data 定义

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

不支持直接将字符串 as 为自定义类型,但可以 as 为 UTSJSONObject,也可以通过 JSON.parse 的范型转化。

下面是修正后的代码

JSON.parse<ArticleDto[]>(str);
8***@qq.com

8***@qq.com

methods: {  
            _loadData() {  
                getApi('/v1/purchase_orders.json', {}).then(res => {  
                    console.info(res)  
                    if (res instanceof UTSJSONObject) {  
                        this.purchaseOrderList = res['data'] as PurchaseOrderType[]  
                        console.info(this.purchaseOrderList)  
                    }  
                })  
            }  
        }
<scroll-view style="flex:1">  
    <!-- #endif -->  
        <view v-for="item: PurchaseOrderType in purchaseOrderList" :key="item.id" style="padding: 10px;border-bottom: solid 1px #efefef;">  
            <view class="flex flex-row">

我这段代码也报这样的错,请问是哪里有问题了?

8***@qq.com

8***@qq.com

已解决,先转字符串,再转类型

this.purchaseOrderList = JSON.parse<PurchaseOrderType[]>(JSON.stringify(res['data']))  
2***@qq.com

2***@qq.com - 2222

楼上正解
this.purchaseOrderList = JSON.parse<PurchaseOrderType[]>(JSON.stringify(res['data'])) as PurchaseOrderType[]

要回复问题请先登录注册