uniappx 模式下,使用字符串 转 对象输出,提示异常:error: java.lang.ClassCastException: io.dcloud.uniapp.vue.UTSReactiveJSONObject cannot be cast to uni.UNI97DAE78.ArticleDto,如果使用强类型 添加就正常,反序列化 字符串就报错。大神给看一下是什么 问题。感谢。
Hbuiler X 3.99版本
uniappx 模式下,使用字符串 转 对象输出,提示异常:error: java.lang.ClassCastException: io.dcloud.uniapp.vue.UTSReactiveJSONObject cannot be cast to uni.UNI97DAE78.ArticleDto,如果使用强类型 添加就正常,反序列化 字符串就报错。大神给看一下是什么 问题。感谢。
Hbuiler X 3.99版本
不支持直接将字符串 as 为自定义类型,但可以 as 为 UTSJSONObject,也可以通过 JSON.parse 的范型转化。
下面是修正后的代码
JSON.parse<ArticleDto[]>(str);
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">
我这段代码也报这样的错,请问是哪里有问题了?
已解决,先转字符串,再转类型
this.purchaseOrderList = JSON.parse<PurchaseOrderType[]>(JSON.stringify(res['data']))
2***@qq.com - 2222
楼上正解
this.purchaseOrderList = JSON.parse<PurchaseOrderType[]>(JSON.stringify(res['data'])) as PurchaseOrderType[]