v***@163.com
v***@163.com
  • 发布:2024-04-01 21:21
  • 更新:2024-06-20 17:13
  • 阅读:572

uts处理reques的数据

分类:uni-app x

报错:[⁠java.lang.ClassCastException⁠]‍ {cause: null, message: "java.lang.String cannot be cast to io.dcloud.uts.UTSJSONObject"}

uni.request({  
                    url: 'xxx',  
                    method: 'GET',  
                    timeout: 6000,  
                    sslVerify: false,  
                    withCredentials: false,  
                    firstIpv4: false,  
                    success: (res) => {  
                        this.list = (res.data as UTSJSONObject) as UTSJSONObject  
                    },  
                    fail: (err) => {  
                        console.log('request fail', err);  
                        uni.showModal({  
                            content: err.errMsg,  
                            showCancel: false  
                        });  
                    },  
                    complete: () => {  
                        uni.hideLoading()  
                    },
2024-04-01 21:21 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

list的定义类型是啥,不会写成string了吧

  • v***@163.com (作者)

    data() {

    return { list: {},

    }

    },

    2024-04-01 21:27

DCloud_heavensoft

DCloud_heavensoft

l***@sina.cn

l***@sina.cn

我也刚上手 UTS,花了十几分钟也弄了个request请求,准备要搜索另外一个问题,看到你的问题,我给下我实现代码

type chatMessages = {  
        chat_message_id : number,  
        chat_index_id : number,  
        chat_type : number,  
        text : string,  
        audio_id ?: string | null,  
        created_at : number  
    }  
    type chatList = {  
        chat_index_id : number,  
        title : string,  
        user_id : number,  
        created_at : number,  
        chat_messages_one ?: chatMessages  
    }  
    type requestBody = {  
        code : number,  
        msg : string,  
        data : chatList[]  
    }  

......  
data() {  
            return {  
                chatMessageList: [] as chatList[],  
                loadingError: '',  
                loading: true  
            }  
        }  

.......  
uni.request<requestBody>({  
                    url: 'http://192.168.2.100:8787/index/jsondata',  
                    success: (res) => {  
                        console.log(res.data)  
                        console.log(res.data instanceof requestBody) //打印返回数据是否 Type 类型  
                        console.log(res.data?.data) //因为联网数据不可控,转换可能失败,所以这里需要用?.的方式做安全访问  
                        const responseData = res.data  
                        if (responseData == null) {//没有数据或者转换失败  
                            return  
                        }  
                        this.chatMessageList.push(...responseData.data);//push 数据  
                    }, fail: (err) => {  
                        this.loadingError = err.errMsg  
                        console.error(err);  
                    },  
                    complete: () => {  
                        this.loading = false  
                    }  
                });

接口返回 json 数据示例

{  
    "code": 0,  
    "msg": "ok",  
    "data": [  
        {  
            "chat_index_id": 67,  
            "title": "你看我像月亮吗",  
            "user_id": 1001,  
            "created_at": 1711901367,  
            "updated_at": null,  
            "chat_messages_one": {  
                "chat_message_id": 130,  
                "chat_index_id": 67,  
                "chat_type": 3,  
                "text": "这个问题更像是一个比喻或者是在寻求某种比喻意义的回答。在文学中,月亮常常象征着美丽、宁静或者神秘。如果你在问是否像月亮那样有特别的品质或特征,那可能需要更具体的上下文来回答。不过,每个人都有自己的独特之处,就像月亮在不同的夜晚有着不同的光芒。",  
                "audio_id": null,  
                "created_at": 1711901370  
            }  
        },  
        {  
            "chat_index_id": 66,  
            "title": "拟人化描写",  
            "user_id": 1001,  
            "created_at": 1711901354,  
            "updated_at": null,  
            "chat_messages_one": {  
                "chat_message_id": 128,  
                "chat_index_id": 66,  
                "chat_type": 3,  
                "text": "月亮可以被拟人化为一个温柔的守护者,或者是一个寂静的诗人。比如,你可以这样描述:“月亮像一位慈祥的老者,静静地在夜空中守望着大地,洒下银色的光芒,仿佛在低声讲述着古老的传说。”又或者,“月亮是一位神秘的舞者,她在天空的舞台上轻盈起舞,时而躲进云层后,时而又露出微笑的脸庞,给寂静的夜晚带来诗意。”这样的描写既富有想象力,又能帮助描绘出月亮的特质。",  
                "audio_id": null,  
                "created_at": 1711901359  
            }  
        }  
    ]  
}
  • v***@163.com (作者)

    请问chatList下每一个字段都需要类型说明吗?能少一个吗

    2024-04-02 09:01

  • l***@sina.cn

    回复 v***@163.com: 强类型语言就是这样,每给都需要定义,嫌麻烦还是的用 UTSJSONObject,你可以打印下数据,一般列表一级都是 Aarray ,里面的用UTSJSONObject在转换一遍。这样我是感觉不可控,比如某个字段下标是空的或者不存在判断起来麻烦的。很

    2024-04-02 12:58

  • v***@163.com (作者)

    回复 l***@sina.cn: 好的,感谢回复

    2024-04-03 12:02

飞翔

飞翔

UTSJSONObject 使用挺麻烦的, 应该由编译器+ 运行时自动决定就可以了, 不需要加 AS

要回复问题请先登录注册