
阅读时长约 18 分钟 | 难度★★★★☆ | 篇章第 8 篇 · 天文历法模块对应源码entry/src/main/ets/pages/astronomy/SolarTermsPage.ets前言玄象项目节气养生数据存储在rawfile目录下的 JSON 文件中通过ohos.resourceManagerAPI 异步加载并解析。这种数据与代码分离的模式让节气数据可独立更新无需重新编译应用。本篇将深入剖析玄象项目 rawfile 资源加载的实现从rawfile目录结构、resourceManager.getRawFileContent加载、JSON 解析到数据绑定 UI。掌握这套 rawfile 资源加载方法论您就能为任何 HarmonyOS 应用实现数据与代码解耦。提示rawfile 目录位于resources/base/rawfile/其中的文件保持原始格式不会被编译。一、rawfile 目录结构1.1 目录布局resources/base/rawfile/ ├── solar_terms.json # 二十四节气完整数据 └── health_tips.json # 节气养生建议二、JSON 加载2.1 资源加载import{resourceManager}fromkit.AbilityKit;privateasyncloadSolarTermsData():Promisevoid{try{constcontextgetContext(this);constrawDataawaitcontext.resourceManager.getRawFileContent(solar_terms.json);constjsonStrnewTextDecoder(utf-8).decode(rawData);constdataJSON.parse(jsonStr);this.solarTermsdata.solarTerms;}catch(err){hilog.error(0x0000,SolarTerms,Load failed: %{public}s,err.message);}}三、rawfile 加载设计总结3.1 数据流solar_terms.json (rawfile) ↓ resourceManager.getRawFileContent Uint8Array 二进制数据 ↓ TextDecoder.decode JSON 字符串 ↓ JSON.parse JavaScript 对象 ↓ State 绑定 UI 展示四、第 8 篇章总结第 8 篇章天文历法模块共 10 篇全面覆盖了玄象项目天文历法页面的实现篇号主题核心技术71LunarCalendar 农历计算核心位编码 朔望月72LunarCalendarPage 农历主页CalendarDay Grid 网格73SolarTermsPage 二十四节气Canvas 节气圆盘74MoonPhasesPage 月相页球面光照算法75TwelveCiPage 十二次页中西天文对照76月相明暗界线绘制arc bezierCurveTo77SolarTerms 节气时刻表Map 数据结构78农历公历双向转换位编码解码79Calendar 日期选择回调选中态高亮80rawfile JSON 加载resourceManager总结本篇以玄象项目节气数据加载为蓝本深入剖析了 ArkUI rawfile 资源加载的实现从rawfile目录结构、resourceManager.getRawFileContent加载、JSON 解析到数据绑定 UI。掌握这套 rawfile 资源加载方法论您就能为任何 HarmonyOS 应用实现数据与代码解耦。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源HarmonyOS 官方文档resourceManager开源鸿蒙跨平台社区https://openharmonycrossplatform.csdn.net