当前位置: 首页 > wzjs >正文

下载网站后怎么做seo外包服务项目

下载网站后怎么做,seo外包服务项目,淘宝客网站建设视频教程,新乡做网站多少钱使用reflect-metadata和class-transformer,实现JSON与类的双向转换。 一、介绍 reflect-metadata介绍 提供元数据存储和反射能力,可在类、属性或方法上附加自定义信息,并通过反射机制在运行时读取。 reflect-metadata关键修饰符&#xff…

使用reflect-metadata和class-transformer,实现JSON与类的双向转换。

一、介绍

reflect-metadata介绍

提供元数据存储和反射能力,可在类、属性或方法上附加自定义信息,并通过反射机制在运行时读取。

reflect-metadata关键修饰符:

1.@Reflect.metadata(key, value)

功能:为类/属性/方法附加元数据

参数:key:元数据标识符(字符串或Symbol) value:存储的任意类型数据

示例:

@Reflect.metadata('version', '1.0')
class MyClass {
@Reflect.metadata('type', 'string')
name: string = '';}

2.内置元数据类型

design:type:获取属性类型

design:paramtypes:获取方法参数类型

design:returntype:获取方法返回类型

class-transformer介绍

实现对象与JSON数据之间的双向转换,支持复杂类型的序列化/反序列化。

class-transformer核心修饰符:

1.@Expose(options?)

功能:控制属性序列化/反序列化可见性

参数:name:JSON字段别名 since/until:版本控制范围

示例:

@Expose({ name: 'user_name' })username: string = '';

2.@Type(typeFn)

功能:指定嵌套类型转换规则

参数:typeFn:返回目标类型的箭头函数

示例:

@Type(() => Date)createTime: Date;

3.@Transform(transformFn, options?)

功能:自定义值转换逻辑

参数:transformFn:转换处理器函数 groups:分组控制

示例:

@Transform(({ value }) => value.toUpperCase())
name: string;

 

‌二、应用

1.安装依赖

ohpm i class-transformer
ohpm i reflect-metadata  # 需配合装饰器使用 

2.基类Model

import 'reflect-metadata';
import { Type, Expose, plainToInstance, instanceToPlain, plainToClass } from 'class-transformer';export class BaseModel {/*** 类实例转JSON* @param instance 类实例* @param excludeExtraneous 是否排除未标记属性*/toJson(excludeExtraneous = true): string {return JSON.stringify(instanceToPlain(this, {excludeExtraneousValues: excludeExtraneous}));}
}

3.实际创建Model

import 'reflect-metadata';
import { Type, Expose } from 'class-transformer';
import { BaseModel } from '../../support/base/BaseModel';@Expose()
export class MFUserModel extends BaseModel {@Expose({ name: 'Token' }) // 支持JSON字段映射token: string = '';@Expose()Phone: string = '';@Expose()PostType: number = 0;// 嵌套对象处理@Expose()@Type(() => AllowOrgListModel) // 确保类型转换AllowOrgList?: AllowOrgListModel[] ;
}// 嵌套类定义
export class AllowOrgListModel {@Expose()OrgId: string = '';@Expose()PersonId: string = '';
}

3.使用示例‌

let par = {'Phone':this.userPhone, 'Password': this.password} as Record<string, number | String>;
httpReq.post<HttpResponseData>('/Person/Login', par).then(resData => {if (resData.Code == 200) {const userModel1 = plainToClass(MFUserModel, resData.RetData); // objectconst jsonStr = userModel.toJson() // 转JSON字符串const userModel2 = plainToClass(MFUserModel, jsonStr); // stringconsole.log('JSONString:', jsonStr);} else {Toast.show(resData.Msg)}
}).catch((error: Error) => {ConsoleLog.error('登录失败:', error.message);Toast.show(error.message)
});

http://www.dtcms.com/wzjs/438316.html

相关文章:

  • 高端平面设计作品网站百度竞价外包
  • 怎么免费发布网站seo快速排名代理
  • 广西建设网桂建云官网seo广告投放是什么意思
  • 订货系统怎么优化一个网站
  • 门户网站改版建议搜索引擎外部链接优化
  • 展示型网站制作东莞发布最新通告
  • 太原做网站的公司程序员培训班要多少钱
  • 可拖拽建设网站没有了吗房地产营销策略有哪些
  • 网站的引导页怎么做的百度问答app下载
  • 网站开发详细设计免费自动推广手机软件
  • 一级a做愛网站网页开发公司
  • 衡水做网站什么是网站推广优化
  • 网站建设行业2017企业查询官网
  • 华为网站建设如何自己制作网站
  • 男给女做性按摩网站网站seo怎么做
  • 怎样自己做公司网站网站优化推广平台
  • 在社交网站开发外国客户资源猫
  • 做微信小程序网站如何在百度上推广自己
  • 天河岗顶棠下上社网站建设关键词优化策略有哪些
  • 免费网站建设排行青岛推广优化
  • 重庆企业做网站多少钱广告公司名字
  • 汽车网站建设公司哪家好海淀区seo搜索引擎优化企业
  • wordpress打开xml-rpc夫唯seo教程
  • wordpress slider代码广告优化师
  • 网站开发java架构网络营销服务有哪些
  • 肇庆网站开发哪家专业杭州优化seo公司
  • 饿了么网站怎么做的线上培训机构排名前十
  • 旅游网网站建设方案他达拉非片的作用及功效副作用
  • 优秀政府网站欣赏关键词在线听
  • 企业北京响应式网站制作国产搜什么关键词最好看