鸿蒙三方库 | harmony-utils之JSONUtil JSON解析与转换详解

发布时间:2026/7/28 20:55:45
鸿蒙三方库 | harmony-utils之JSONUtil JSON解析与转换详解 前言JSON是现代应用中最常用的数据交换格式pura/harmony-utils的JSONUtil封装了JSON解析和转换方法提供了比原生JSON更安全便捷的操作。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、JSONUtil核心APIJSONUtil提供了以下JSON操作方法方法说明返回类型使用场景parse(str)安全解析JSONObject数据解析stringify(obj)安全序列化string数据传输parseArray(str)解析JSON数组T[]列表解析getString(obj, key)安全获取字符串string属性读取getNumber(obj, key)安全获取数字number属性读取getBoolean(obj, key)安全获取布尔值boolean属性读取1.1 核心特性简洁易用封装复杂逻辑为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理安全解析不会因格式错误导致崩溃安全取值getString/getNumber/getBoolean避免空指针1.2 JSONUtil与原生JSON对比特性原生JSONJSONUtil解析异常抛出异常安全返回null类型获取需手动判断提供类型方法数组解析需类型断言专用方法空值处理undefined默认值二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 安全解析JSONimport{JSONUtil}frompura/harmony-utils;Button(安全解析JSON).width(100%).onClick((){try{letjson{name:张三,age:25};letobjJSONUtil.parse(json);this.result解析成功 ✅\nname:${obj.name}\nage:${obj.age};}catch(e){this.result解析失败: e;}})2.3 安全获取属性Button(安全获取属性).width(100%).onClick((){try{letobj{name:张三,age:25,active:true};letnameJSONUtil.getString(obj,name);letageJSONUtil.getNumber(obj,age);letactiveJSONUtil.getBoolean(obj,active);this.resultname:${name}\nage:${age}\nactive:${active};}catch(e){this.result异常: e;}})三、完整页面示例import{JSONUtil}frompura/harmony-utils;EntryComponentstruct JsonDemo{Stateresult:string;build(){Column({space:12}){Button(安全解析).width(100%).onClick((){letobjJSONUtil.parse({name:张三,age:25});this.resultobj?name:${obj.name}:解析失败;});Button(安全取值).width(100%).onClick((){letdata{name:李四,score:95};this.resultname:${JSONUtil.getString(data,name)}\nscore:${JSONUtil.getNumber(data,score)};});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 API响应处理import{JSONUtil}frompura/harmony-utils;functionhandleApiResponse(response:string):UserInfo|null{letobjJSONUtil.parse(response);if(!obj)returnnull;return{name:JSONUtil.getString(obj,name),age:JSONUtil.getNumber(obj,age),active:JSONUtil.getBoolean(obj,active),};}4.2 配置文件读取functionloadConfig(jsonStr:string):AppConfig{letobjJSONUtil.parse(jsonStr)||{};return{theme:JSONUtil.getString(obj,theme)||light,fontSize:JSONUtil.getNumber(obj,fontSize)||14,};}五、注意事项安全解析parse方法对无效JSON安全返回null类型转换getString等方法会尝试类型转换默认值属性不存在时返回类型的默认值初始化依赖使用前需确保AppUtil.init()已调用嵌套对象安全取值只支持一级属性六、常见问题Q1: parse解析失败返回什么安全解析失败返回null不会抛出异常。Q2: getString对数字属性返回什么会尝试将数字转为字符串如 25 返回 “25”。Q3: parseArray支持泛型吗支持可以指定数组元素类型。Q4: 如何获取嵌套对象的属性需要先获取外层对象再逐层取值。总结JSONUtil的JSON解析和转换方法为数据处理提供了安全便捷的支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法安全地解析JSON和获取属性值。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。