尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

VBA-JSON:三步搞定 VBA 里 JSON 解析

VBA-JSON:三步搞定 VBA 里 JSON 解析 VBA-JSON三步搞定 VBA 里 JSON 解析【免费下载链接】VBA-JSONJSON conversion and parsing for VBA项目地址: https://gitcode.com/gh_mirrors/vb/VBA-JSONVBA 里要对接接口往往得用 InStr 在 JSON 字符串里一段段找字段嵌套一层、引号一转义就够呛。VBA-JSON就是一个单文件的 JSON 解析与生成库导入JsonConverter.bas一个文件用一行ParseJson完成解析Windows 和 Mac 的 Office 都能跑。VBA-JSON 单文件库能做什么为什么值得用双向转换ParseJson把 JSON 变成Dictionary对象与Collection数组ConvertToJson再把数据转回字符串日期自动转 ISO 8601 格式单文件、跨平台整个核心只有JsonConverter.bas一个文件Windows / Mac、Excel / Access 2007 通吃✅带官方回归测试specs/Specs.bas里几十组断言你依赖它之前可以先跑一遍验证行为三步装好 VBA-JSON 解析环境环境要求Office 2007 及以上Excel、Access 等 Office 应用。克隆仓库git clone https://gitcode.com/gh_mirrors/vb/VBA-JSONAltF11打开 VBA 编辑器在工程上右键 → 导入文件选择JsonConverter.bas按你的系统补一个Dictionary依赖系统需准备的内容Windows工具 → 引用 勾选Microsoft Scripting RuntimeDictionary就来自这里无需额外文件Mac引入VBA-Dictionary项目的Dictionary.cls因为 Mac 版 VBA 没有原生Dictionary补完后整体编译一次不报错即环境就绪。用最小 JSON 解析示例跑通输入输出闭环下面代码可直接贴进模块运行Sub Demo() Dim j As Object 对象→Dictionary、数组→Collection下标从 1 开始而非 0 Set j JsonConverter.ParseJson({a:123,b:[1,2,3,4],c:{d:456}}) Debug.Print j(a) 预期输出 123 Debug.Print j(b)(3) 预期输出 3 j(c)(e) 789 改完数据再转回 JSON Debug.Print JsonConverter.ConvertToJson(j, Whitespace:2) 预期输出带缩进的多行 JSON End Sub一行代码打开三个常用 JSON 配置开关三个全局选项默认都是False统一在JsonConverter.JsonOptions上修改UseDoubleForLargeNumbers默认False超过 15 位的纯数字按字符串返回防止截断只有确实要拿Double做运算时才改True开启后长数字末位会丢精度AllowUnquotedKeys默认False严格按 JSON 标准要求键名带引号接口返回不带引号的键名时才改TrueEscapeSolidus默认FalseConvertToJson输出时不转义/下游系统要求\/时才改True 三个开关默认全为 False按需只开需要的那一个 JsonConverter.JsonOptions.UseDoubleForLargeNumbers True JsonConverter.JsonOptions.AllowUnquotedKeys True JsonConverter.JsonOptions.EscapeSolidus True上线前必看的三个 JSON 解析避坑问答问报 10001 错误码怎么排查答这是ParseJson的统一解析错误码错误信息里带^指出问题位置。最常见原因是输入没以{或[开头——接口返回了错误页或文本开头多了 BOM。问订单号解析后末几位变了答Double只保留 15 位有效数字且截断是静默发生的。VBA-JSON 默认把超 15 位的纯数字返回字符串若你看到截断先检查是否误开了UseDoubleForLargeNumbers。问访问j(b)(2)为什么报下标越界答JSON 数组被转成Collection下标从 1 开始不是 0。按四步清单验证 VBA-JSON 是否装对git clone仓库导入JsonConverter.bas按系统补上Dictionary依赖并编译通过跑通上面的示例确认三条Debug.Print输出符合预期打开VBA-JSON - Specs.xlsm运行specs/Specs.bas里的官方测试全部通过后你项目里就有了一个不丢数字、不丢结构的 JSON 解析库之后处理任何接口数据都从ParseJson一行开始。【免费下载链接】VBA-JSONJSON conversion and parsing for VBA项目地址: https://gitcode.com/gh_mirrors/vb/VBA-JSON创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表