HarmonyOS 鸿蒙Next能否支持json字符串转成自定义对象或接口

HarmonyOS 鸿蒙Next能否支持json字符串转成自定义对象或接口 例如有个接口或者类:

class jsonObject{
 para1:number;
 para2:string;
 para3:string;
 map:Map<string,string>;
}

然后有个json字符串:

let str='{"para1":123,"para2":"b","para3":"c","map":{"A":"a","V":"v","B":b}}';

可以把str转成jsonObject吗

2 回复

三方库class-transformer的JSON数据转换成类实例对象可以满足:

import { Type, plainToClass } from ‘class-transformer’

//需要写在ts文件中
import “reflect-metadata”

export function func(){
let str: string = '{"id": 1,"firstName": "Johny","lastName": "Cage","age": 27,"arr": [{"name": "john"},{"name": "tom"}],"map":{"name1":"this is map1","name2":"this is map2"},"instanceA": {"name": "john"}}'
let instance:User = plainToClass(User, JSON.parse(str));

console.log(`JsonToClass wtq instance ${JSON.stringify(instance)}`)
console.log(`JsonToClass wtq instance.map.name ${JSON.stringify(instance.map.get('name'))}`)
}

export class A {
name: string = 'john';

getName(): string {
return this.name;
}
}

export class User {
id: number = 0;
firstName: string = '';
lastName: string = '';
age: number = 0;

@Type(() => Map)
map: Map<string,string>=new Map()

@Type(() => A)
arr: A[] = [new A()]

@Type(() => A)
instanceA: A = new A();

getName() {
return this.firstName + " " + this.lastName;
}

isAdult() {
return this.age > 36 && this.age < 60;
}
}

更多关于HarmonyOS 鸿蒙Next能否支持json字符串转成自定义对象或接口的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next支持将JSON字符串转换成自定义对象或接口,这一过程通常通过序列化和反序列化技术实现。在鸿蒙系统中,你可以利用现有的JSON处理库来完成这一任务,而无需直接依赖于Java或C语言的具体实现细节。

鸿蒙系统提供了丰富的API和框架,开发者可以利用这些工具来解析JSON数据并将其映射到自定义的JavaScript对象或TypeScript接口上(注意,这里提到的JavaScript和TypeScript是在鸿蒙应用开发中可能用到的脚本语言,用于构建前端界面或处理业务逻辑,并非指Java)。

具体来说,你可以选择一个适合的JSON库,如fast-jsonJSON.parse(在JavaScript环境中)等,来解析JSON字符串。然后,通过定义与JSON结构相匹配的对象或接口,使用库提供的方法将解析后的数据直接赋值给这些对象或接口的属性。

例如,在TypeScript中,你可以定义一个接口来描述JSON数据的结构,并使用JSON.parse方法将JSON字符串转换为该接口类型的对象。

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

回到顶部