HarmonyOS 鸿蒙Next 数据请求后给item传model赋值时如何防崩溃 当服务器返回的某条数据无值时

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

HarmonyOS 鸿蒙Next 数据请求后给item传model赋值时如何防崩溃
当服务器返回的某条数据无值时

我在数据请求后给item传一个model进行赋值,会突然出现服务器返回的某一条数据是无值的,这种怎么防止崩溃呢,给model所有属性都要添加问号吗

2 回复

JSON.parse处理可以使用reviver,可以参考以下代码:

class Student {

  name: string = ''

  age: number = 0

}

@Entry

@Component

struct Index {

  @State jsonStr: string = '[{"name":null,"age":10},{"name":"xiaohong","age":null},{"name":"xiaohua","age":12}]'

  @State jsonStrNoNull: string = ''

  build() {

    Column() {

      Text(this.jsonStr).margin({bottom: 60})

      Button('转model去掉null').onClick(() => {

        const arr: Student[] = JSON.parse(this.jsonStr, (key: string, value: string | number): void | string | number => {

          if (key == 'name' && value == null) {

            value = ''

          }

          if (key == 'age' && value == null) {

            value = 0

          }

          return value

        })

        this.jsonStrNoNull = JSON.stringify(arr)

      }).margin({bottom:60})

      Text(this.jsonStrNoNull).margin({bottom: 60})

    }

  }

}

更多关于HarmonyOS 鸿蒙Next 数据请求后给item传model赋值时如何防崩溃 当服务器返回的某条数据无值时的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next开发中,处理服务器返回的数据时,若某条数据可能无值(即为null或空字符串),给item的model赋值前进行非空校验是防止应用崩溃的有效手段。具体做法如下:

  1. 字段校验:在数据绑定到model之前,对每个可能为空的关键字段进行非空判断。例如,使用Java或Kotlin时,可通过if语句检查数据是否为null或空字符串。

  2. 使用默认值:若字段为空,可为其分配一个默认值,以避免空指针异常。这适用于那些允许有合理默认值的字段。

  3. 异常捕获:在数据处理过程中使用try-catch块捕获潜在的空指针异常,防止程序因异常而崩溃。

  4. 数据模型设计:在model类中,为可能为空的字段提供null安全检查的方法,确保外部调用时不会直接访问null值。

  5. 日志记录:对于为空的数据,记录日志以便后续分析和修复服务器端的数据问题。

通过上述措施,可以有效减少因服务器返回数据不完整导致的应用崩溃。

回到顶部