openharmony 鸿蒙 arkts-json

2025-06-12 浏览 (1)

JSON扩展库

该库扩展了原生JSON功能,提供了额外的错误处理、循环引用检测、BigInt处理以及对不同输入类型的严格检查。代码中底层依赖于原生JSON.parse和JSON.stringify,但在此基础上加入了多种自定义逻辑并提供额外的has和remove接口,具体可见@arkts.json

parse

parse(text: string, reviver?: Transformer, options?: ParseOptions): Object|null

解析JSON字符串,支持BigInt模式。

与原生的区别:

特性原生parse本库parse
BigInt支持不支持(抛出TypeError)支持(通过parseBigInt扩展)
参数校验弱校验强校验(抛出BusinessError)
错误信息原生错误(如SyntaxError)自定义BusinessError
reviver参数支持支持,但强制类型检查

stringify

stringify(value: Object, replacer?: (number|string)[]|null, space?: string|number): string

将对象转换为JSON字符串,支持BigInt模式。

与原生的区别:

特性原生stringify本库stringify
BigInt支持不支持(抛出TypeError)支持(通过stringifyBigInt扩展)
循环引用检测抛出TypeError检测并抛出BusinessError
参数校验弱校验强校验(replacer 必须是函数或数组)
错误信息原生错误自定义BusinessError

has

has(obj: object, property: string): boolean

检查对象是否包含指定的属性,确保传入的值是一个对象,并且属性键是有效的字符串。

与原生的区别:

特性原生方式(obj.hasOwnProperty)本库has
参数校验无校验(可能误用)强制检查obj是普通对象,property是非空字符串
错误处理可能静默失败抛出BusinessError

remove

remove(obj: object, property: string): void

从对象中删除指定的属性。

特性原生方式(delete obj.key)本库remove
参数校验无校验(可能误删)强制检查obj是普通对象,property是非空字符串
错误处理可能静默失败抛出BusinessError

总结:

功能原生JSON本库
严格参数校验不支持支持
循环引用检测不支持支持
BigInt处理不支持支持
增强的错误处理(BusinessError)不支持支持
额外方法(has/remove)不支持支持

适用场景:

  • 需要处理BigInt的JSON解析或序列化。

  • 需要更严格的参数校验和错误处理。

  • 需要检测循环引用。

  • 需要安全的对象操作(has/remove)。

该库适用于需要增强JSON功能的场景,特别是在处理BigInt和严格的参数校验时。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙ArkTS(方舟编程语言)

harmony 鸿蒙在build-profile.json5中配置arkOptions

harmony 鸿蒙异步锁

harmony 鸿蒙方舟字节码文件格式

harmony 鸿蒙方舟字节码函数命名规则

harmony 鸿蒙方舟字节码基本原理

harmony 鸿蒙方舟字节码概述

harmony 鸿蒙共享容器

harmony 鸿蒙异步等待

harmony 鸿蒙ArkTS跨语言交互

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/yQ0f47