HarmonyOS 鸿蒙Next ArkTS该如何正确解析后端返回的数据

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next ArkTS该如何正确解析后端返回的数据 我封装了网络请求工具类 以及object转自定义class的工具类, 但是不知为啥接口返回的数据第二层数据(也就是data.data)这一层数据是空的 我已外部使用Postman请求确认接口和请求参数已经返回数据都是没问题的 所以排除了后端原因 请问ArkTS该如何正确解析后端返回的数据

4 回复

可以使用第三方

npm install class-transformer

然后使用

plainToClassFromExist(clsObject, jsonObj);

参考:https://developer.huawei.com/consumer/cn/blog/topic/03151854787432021

更多关于HarmonyOS 鸿蒙Next ArkTS该如何正确解析后端返回的数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


感谢,亲测有效。我是来还愿的。post和get都给了实例,非常好。给你文章点赞了。
希望华为官方能把这个文章顶起来。

1、针对第二层数据(也就是data.data)这一层数据是空的这个问题,是解析数据的类型为object,可尝试console.log("密码登录 请求 请求成功 data.data:" +JSON.stringify(data.data))进行打印查看。

2、获取数据为空,您需要将data.data 转换为对应类的class实例,代码中看到有过相关的处理,可能是处理的方式有点问题。

这边可以尝试 这种方式的处理:

let resultObj = JSON.parse(data.result.toString()) as Array<IShopDetail>;

data.result.toString()换成data.data.toString()

Array<IShopDetail>换成您设置的class对象,如果返回为单个,将Array去掉。

另外,代码里返回值,建议将Promise<object>中的object换成对应的class类

HarmonyOS 鸿蒙Next ArkTS正确解析后端返回的数据,通常涉及以下几个步骤:

  1. 定义数据结构:首先,根据后端返回的数据格式,在ArkTS中定义相应的数据结构。这可以是简单的对象,也可以是包含嵌套对象和数组的复杂结构。确保数据结构的字段名称和类型与后端返回的数据一致。

  2. 发起网络请求:使用ArkTS提供的网络请求API(如fetch或axios等,具体取决于鸿蒙系统的网络库支持),向后端发送请求并获取数据。

  3. 解析数据:在请求成功回调中,使用JSON.parse()方法(或类似功能)将后端返回的JSON字符串解析为ArkTS中的数据结构对象。

  4. 处理数据:解析后的数据可以直接在ArkTS中使用,进行界面渲染、逻辑处理等。

  5. 错误处理:在请求过程中,应添加错误处理逻辑,以应对网络错误、数据格式错误等情况。

示例代码(伪代码,具体实现需根据鸿蒙API调整):

let responseData;
fetch('后端接口URL')
    .then(response => response.json())
    .then(data => {
        responseData = parseDataToStructure(data); // 假设此方法将JSON解析为定义的数据结构
        // 使用responseData进行后续处理
    })
    .catch(error => {
        // 处理错误
    });

function parseDataToStructure(jsonData) {
    // 根据定义的数据结构解析JSON数据
    // 返回解析后的数据结构对象
}

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部