HarmonyOS 鸿蒙Next 网络请求的JSON数据怎么动态转自定义模型class对象

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

HarmonyOS 鸿蒙Next 网络请求的JSON数据怎么动态转自定义模型class对象

使用@Observed@objectLink装饰器必须是自定义class,这事就需要将请求网络的数据json转自定义class,想动态创建完成,不想一层一层解析创建对象

目前我是通过自定义的Interface来接收解析json字符串,但我需要用class

2 回复

可以参考如下方案:

export default class ResponseResult {
  /**
   * Code returned by the network request: success, fail.
   */
  code: string;

  /**
   * Message returned by the network request.
   */
  msg: string | Resource;

  /**
   * Data returned by the network request.
   */
  data: string | Resource;

  constructor() {
    this.code = '';
    this.msg = '';
    this.data = '';
  }
}

//网络请求
export function httpRequestPost(url: string,requestData?:Object): Promise<ResponseResult> {
  let serverData: ResponseResult = new ResponseResult();
  let httpRequest = http.createHttp();
  let responseResult = httpRequest.request(url, {
    method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET
    // 开发者根据自身业务需要添加header字段
    header: {
      'Content-Type': 'application/json'
    },
  });
  // Processes the data and returns.
  return responseResult.then((data) => {
    if (data.responseCode == 200) {
      // 处理返回结果
      let resultJson:ResponseResult = JSON.parse(data.result as string);
      if (resultJson.msg == 'success') {
        serverData.data = resultJson.data
      }
      else {
        serverData.data = resultJson.data
      }
      serverData.code = resultJson.code;
      serverData.msg = resultJson.msg;
    } else {
      // todo 请求失败,进行失败逻辑处理
      // serverData.msg = `${$r('app.string.http_error_message')}&${data.responseCode}`;
    }
    return serverData;
  }).catch(() => {
    // todo 请求失败,进行失败逻辑处理
    // serverData.msg = $r('app.string.http_error_message');
    return serverData;
  })
}

还有一个工具类 json传class https://developer.huawei.com/consumer/cn/blog/topic/03147347507819012 也可以参考下

更多关于HarmonyOS 鸿蒙Next 网络请求的JSON数据怎么动态转自定义模型class对象的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,将网络请求的JSON数据动态转为自定义模型class对象,可以通过以下步骤实现:

  1. 引入JSON解析库:HarmonyOS提供了内置的JSON解析API,可以直接使用。

  2. 定义数据模型:根据JSON数据结构,定义对应的JavaScript对象或TypeScript接口(取决于你的开发语言)。

  3. 解析JSON数据:使用JSON解析API将JSON字符串解析为JSON对象。

  4. 数据映射:将解析后的JSON对象中的数据映射到自定义的数据模型实例中。

示例代码(假设使用TypeScript):

// 假设有一个Person类
class Person {
    name: string;
    age: number;

    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }
}

// 假设收到的JSON数据
const jsonData = '{"name": "John", "age": 30}';

// 解析JSON数据
const jsonObject = JSON.parse(jsonData);

// 创建Person实例并赋值
const person = new Person(jsonObject.name, jsonObject.age);

以上代码展示了如何将JSON数据转换为自定义的Person类实例。

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

回到顶部