HarmonyOS 鸿蒙Next:json转实体类无法显示在屏幕上

HarmonyOS 鸿蒙Next:json转实体类无法显示在屏幕上

import { http } from ‘@kit.NetworkKit’; import { JSON } from ‘@kit.ArkTS’; import { Singer } from ‘…/model/Singer’; import { router } from ‘@kit.ArkUI’; import { BusinessError } from ‘@kit.BasicServicesKit’;

interface SingerClass { singer_id: number; singer_name: string; singer_img: string; }

@Entry @Component struct Second { @State text: string = ‘back’; @State singers: Array<Singer> = [];

aboutToAppear() { this.fetchSingers(); }

build() { Column() { ForEach(this.singers, (singer: Singer) => { Column() { Text(ID: ${singer.singer_id}); Text(Name: ${singer.singer_name}); }.margin({ top: 10 }); }); } .width(‘100%’) .height(‘100%’); }

fetchSingers() { console.log(‘进行数据请求’); let httpRequest = http.createHttp();

httpRequest.request(
  'http://0.0.0.0:3000/singers',
  {
    method: http.RequestMethod.GET,
    extraData: '',
    header: { 'Content-Type': 'application/json' },
  },
  (err, data) => {
    if (!err) {
      try {
        console.log('进行数据处理');
        let singersData = JSON.parse(data.result as string);
        if (Array.isArray(singersData)) {
          this.singers = singersData.map((item: SingerClass) =>
            new Singer(item.singer_id, item.singer_name, item.singer_img)
          );
          console.log('响应数据:', this.singers);
        }
      } catch (e) {
        console.log('解析错误:', e);
      }
    } else {
      console.log('Error:', JSON.stringify(err));
    }
    httpRequest.destroy();
  }
);

} }

The json.parse interface in the Previewer is a mocked implementation and may behave differently than on a real device.

求助lol


更多关于HarmonyOS 鸿蒙Next:json转实体类无法显示在屏幕上的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

使用.push添加

let singersData = JSON.parse(data.result as string);
if (Array.isArray(singersData)) {
  this.singers = []
  singersData.map((item: SingerClass) => {
    this.singers.push(new Singer(item.singer_id, item.singer_name, item.singer_img))
  }
  );
  console.log('响应数据:', this.singers);
}

更多关于HarmonyOS 鸿蒙Next:json转实体类无法显示在屏幕上的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题“HarmonyOS 鸿蒙Next:json转实体类无法显示在屏幕上”的问题,以下是专业回答:

在HarmonyOS鸿蒙系统中,若遇到JSON转实体类后数据无法在屏幕上显示的问题,可能原因及解决方案如下:

  1. 绑定问题:检查实体类与UI组件的数据绑定是否正确。确保使用了正确的数据绑定语法,并且实体类的属性名与JSON键名相匹配。

  2. UI组件问题:验证UI组件是否已正确初始化,并且处于可见状态。同时,检查组件的属性设置,确保能够接收并显示绑定的数据。

  3. 数据更新问题:若数据是在后台线程中获取的,确保数据更新操作在主线程中执行,或使用HarmonyOS提供的数据绑定机制来自动更新UI。

  4. JSON解析问题:检查JSON解析过程是否正确,确保没有解析错误,且实体类属性类型与JSON值类型一致。

  5. 日志调试:使用HarmonyOS的日志系统打印关键变量的值,以便追踪数据流向和状态变化,从而定位问题所在。

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

回到顶部