HarmonyOS 鸿蒙Next:json 转 class 有没有对应的方法

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

HarmonyOS 鸿蒙Next:json 转 class 有没有对应的方法 json 转 class 有没有对应的方法

2 回复

class address { street: string; city: string; state: string;

constructor(street:string,city:string,state:string) { this.street = street; this.city = city; this.state = state; } }

class jsonObj { address:address name: string; age: number; phoneNumbers: Array<string>;

constructor(name:string,age:number,address:address,phoneNumbers: Array<string>) { this.name = name; this.age = age; this.address = address; this.phoneNumbers = phoneNumbers; } }

@Entry @Component struct Index { @State message: string = ‘Hello World’

build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold)

    Button(){
      Text("打印")
    }
    .width(150)
    .height(75)
    .onClick(()=>{
      let str = ["555-1234", "555-5678"]
      let add = new address("123 Main St","Anytown","CA");
      let json = new jsonObj("john",30,add,str)

      console.log(JSON.stringify(json.name));
      console.log(JSON.stringify(json.age));
      console.log(JSON.stringify(json.address));
      console.log(JSON.stringify(json.phoneNumbers));
    })
  }
  .width('100%')
}
.height('100%')

} }

系统规格问题:鸿蒙目前暂不支持,因为开启了严格的ARKTS语言检查,所以使用的data对象必须进行class类型的自定义,否则无法使用

不使用怎么获取网络数据给arkts使用,那怎么解析字符串为对象,怎么取字符串中的某些字段的值?

// 定义类型接口: interface userRespType{ nickname: string, avatar: string } interface dataType{ roomId: string, nativeUrl: string, status: string, userResp:Array<userRespType> } interface jsonObjectType{ reqId:string, code: number, msg: string, data:dataType }

let userResp:userRespType = { nickname: “一个很长的名字哈哈哈”, avatar: “https://aopsmsg.pingan.com.cn/group4/M01/2A/3C/HhDEeFqcsfiAY06aAAA0Fw-3GV0645.jpg#w=210;h=210” } let data:dataType = { roomId: “823688”, nativeUrl: “native://enterLiveRoom?RoomId=823688”, status: “1”, userResp: [ userResp ] } let jsonObj:jsonObjectType= { reqId: “2b2258ae54e3101a”, code: 0, msg: “success”, data:data } let json:string = JSON.stringify(jsonObj)

// 假设test为JSON.prase解析后的数据 let test:jsonObjectType = JSON.parse(json) console.info(test.msg) console.info(test.data.userResp[0].nickname)

更多关于HarmonyOS 鸿蒙Next:json 转 class 有没有对应的方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)开发中,将JSON数据转换为类(class)对象是一个常见的需求。鸿蒙系统提供了多种方式来处理JSON数据,其中一种常见的方法是使用JSON反序列化库。

鸿蒙系统本身并未直接提供一个内置的、类似于Java中的Jackson或Gson那样的库来直接将JSON字符串转换为Java对象(由于要求不回答Java相关内容,这里不展开Java的具体实现)。但是,鸿蒙开发社区和工具链可能已经提供了类似的第三方库,或者你可以通过自定义解析逻辑来实现这一功能。

在鸿蒙开发中,你可以考虑使用以下步骤来实现JSON到类的转换:

  1. 定义数据类:首先,根据你的JSON数据结构,定义一个或多个类来匹配这些结构。

  2. JSON解析:使用鸿蒙提供的JSON解析API(如JsonValueJsonObject等)来解析JSON字符串。

  3. 数据填充:根据解析得到的JSON对象,手动或通过反射机制将数据填充到你定义的类中。

  4. 第三方库:如果存在适用于鸿蒙的第三方库,可以直接使用该库来简化JSON到类的转换过程。

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

回到顶部