HarmonyOS鸿蒙Next中网络请求回来的Json字符串如何解析为实体类

HarmonyOS鸿蒙Next中网络请求回来的Json字符串如何解析为实体类 以下面数据为例,如何转为实体类对象呢

let jsonStr = "[{
"name":"张三","age":"15","hobbies":["王者荣耀","唱歌"]
},{"name":"李四","age":"16","hobbies":["羽毛球"]},
{"name":"王五","age":"17","hobbies":["羽毛球","乒乓球","LOL"]}]"

class Student {
name: string;
age: number;
hobbies: Array<string>
}

更多关于HarmonyOS鸿蒙Next中网络请求回来的Json字符串如何解析为实体类的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

可以使用Json.parse

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-json-V5#jsonparse

interface Student {
  name: string;
  age: number;
  hobbies: Array<string>
}
handleJSONString(jsonStr: string): Student {
  return JSON.parse(jsonStr) as Student;
}

as语法:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/typescript-to-arkts-migration-guide-V5#类型转换仅支持as-t语法

更多关于HarmonyOS鸿蒙Next中网络请求回来的Json字符串如何解析为实体类的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


用JSON.parse

let jsonStr = `[{"name":"张三","age":"15","hobbies":["王者荣耀","唱歌"]},
{"name":"李四","age":"16","hobbies":["羽毛球"]},
{"name":"王五","age":"17","hobbies":["羽毛球","乒乓球","LOL"]}]`;

class Student {
  name: string;
  age: number;
  hobbies: Array<string>;

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

// 解析 JSON 字符串
let studentArray: Array<Student> = JSON.parse(jsonStr).map((item: any) => {
  return new Student(item.name, parseInt(item.age), item.hobbies);
});

console.log(studentArray);

在HarmonyOS鸿蒙Next中,网络请求返回的Json字符串可以通过JsonUtil类进行解析。JsonUtil是鸿蒙系统提供的一个工具类,用于处理Json数据的序列化和反序列化。假设你有一个实体类User,其结构如下:

class User {
    id: number;
    name: string;
    email: string;
}

要将Json字符串解析为User对象,可以使用JsonUtilparse方法:

let jsonString = '{"id": 1, "name": "John", "email": "john@example.com"}';
let user: User = JsonUtil.parse(jsonString, User);

JsonUtil.parse方法将Json字符串解析为指定的实体类对象。如果Json字符串的字段与实体类的属性匹配,解析过程将自动完成。

如果Json字符串是一个数组,也可以使用相同的方法进行解析:

let jsonArrayString = '[{"id": 1, "name": "John"}, {"id": 2, "name": "Jane"}]';
let users: User[] = JsonUtil.parse(jsonArrayString, Array<User>);

JsonUtil还提供了stringify方法,用于将对象序列化为Json字符串:

let user = new User();
user.id = 1;
user.name = "John";
user.email = "john@example.com";
let jsonString = JsonUtil.stringify(user);

以上就是在HarmonyOS鸿蒙Next中解析Json字符串为实体类的基本方法。

在HarmonyOS鸿蒙Next中,可以通过JsonUtil类将网络请求返回的Json字符串解析为实体类。首先,定义与Json结构对应的实体类,并使用@SerializedName注解映射字段。然后,调用JsonUtil.toObject(jsonString, YourClass.class)方法进行解析。例如:

String jsonString = ...; // 从网络请求获取的Json字符串
YourClass yourObject = JsonUtil.toObject(jsonString, YourClass.class);

确保实体类的字段与Json键名一致,或使用注解进行映射。

回到顶部