HarmonyOS ArkTS里处理json时有没有对驼峰、下划线命名处理的用法

HarmonyOS
2025-01-09 13:51:55
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

当前可以借助三方库class-transformer和reflect-metadata实现(需通过ohpm install 安装后使用)。

具体步骤如下:

1、安装

ohpm install class-transformer 
ohpm install reflect-metadata 

2、导入包

import 'reflect-metadata'; 
import { Expose, instanceToPlain, plainToInstance, Type } from 'class-transformer';

3、class示例

class Test {
  @Expose({ name: "my_hit" }) //1. 设置
  myHit: number = 0;
  @Expose({ name: "meta_data" })
  @Type(() => AuthorMeta) //保证嵌套类型反序列化后可以正常转成目标class
  meta: AuthorMeta = new AuthorMeta();
}

class AuthorMeta {
  @Expose({ name: 'focus_count' })
  focusCount: number = 10;
}

4、测试代码

@Entry
@Component
struct JSONIndex {
  build() {
    Column() {
      Button('click me')
        .onClick(() => {
          // 序列化示例
          let test = new Test();
          test.myHit = 100;
          let serializedData = instanceToPlain(test); // 2.转换
          let jsonstr = JSON.stringify(serializedData); //3. 输出
          console.info(`DZG test jsonstring: ${jsonstr}`);
          // 反序列化示例
          let deserTest: Test = JSON.parse(jsonstr);
          let deserData = plainToInstance(Test, deserTest);
          console.info(`test instance value of myHit:${deserData.myHit}  metaData's focusCount:${deserData.meta.focusCount}`)
        })
    }
  }
}
分享
微博
QQ
微信
回复
2025-01-09 16:17:54
相关问题
HarmonyOS 虚线下划线实现方式
586浏览 • 1回复 待解决
如何给文字添加下划线?
1007浏览 • 1回复 待解决
tab-bar下方下划线怎么去掉?
3575浏览 • 1回复 待解决
Tabs组件选中下划线需要平移动效
1908浏览 • 1回复 待解决
希望提供字体是否为下划线文本接口
1072浏览 • 1回复 待解决
HarmonyOS 关于json转model处理
478浏览 • 1回复 待解决
基于ImageKit图片进行处理
1115浏览 • 1回复 待解决
HarmonyOS 有没有标UIScrollView组件
406浏览 • 1回复 待解决
HarmonyOS 支持字符串正则处理
263浏览 • 1回复 待解决
HarmonyOS ArkTS有没有BigDecimal?
510浏览 • 1回复 待解决