首页
/ VBA-JSON解析JSON数组中的多组记录

VBA-JSON解析JSON数组中的多组记录

2026-02-03 04:51:26作者:范靓好Udolf

在处理JSON数据时,我们经常会遇到包含多组记录的JSON数组结构。本文将以VBA-JSON库为例,详细介绍如何正确解析和处理这种常见的数据结构。

JSON数组结构解析

典型的JSON数组结构如下:

[
  {"A":"aaa","Date":"2021-08-03","C":"ccc","E":"eee","H":"hhh","G":"ggg","Status":"on"},
  {"A":"b","Date":"2022-06-20","C":"d","E":"fff","H":"hhh","G":"ggg","Status":"on"}
]

这种结构在VBA-JSON中被解析为:

  • 最外层是一个Collection对象
  • 数组中的每个元素(记录)被解析为一个Dictionary对象

常见错误处理方式

许多初学者会犯一个典型错误:直接对解析结果进行键值遍历。例如:

Set JsonObject = ParseJson(jsonString)
For Each vKey In JsonObject.Keys
    Debug.Print vKey
Next vKey

这种方法只能获取到第一条记录的键,而无法访问数组中其他记录的数据。

正确的处理方法

要正确处理JSON数组中的所有记录,需要使用嵌套循环:

Sub ProcessJsonArray()
    Dim jsonString As String
    Dim jsonArray As Object, jsonRecord As Object, key As Variant
    
    ' 示例JSON数据
    jsonString = "[{'A':'aaa','Date':'2021-08-03','C':'ccc','E':'eee','H':'hhh','G':'ggg','Status':'on'}," & _
                 "{'A':'b','Date':'2022-06-20','C':'d','E':'fff','H':'hhh','G':'ggg','Status':'on'}]"
    
    ' 解析JSON
    Set jsonArray = ParseJson(jsonString)
    
    ' 遍历数组中的每条记录
    For Each jsonRecord In jsonArray
        ' 遍历当前记录的所有键
        For Each key In jsonRecord.Keys
            Debug.Print "键: " & key & ", 值: " & jsonRecord(key)
        Next key
        Debug.Print "-----" ' 记录分隔线
    Next jsonRecord
End Sub

实际应用建议

  1. 类型检查:在处理JSON数据前,建议先检查解析结果的类型
  2. 错误处理:添加适当的错误处理机制,应对可能的数据格式问题
  3. 数据转换:对于日期等特殊格式数据,需要进行额外处理
  4. 性能优化:处理大量数据时,考虑使用数组暂存结果而非直接操作对象

扩展应用

这种嵌套循环的方法不仅适用于简单的键值遍历,还可以用于:

  • 数据筛选和过滤
  • 数据格式转换
  • 生成报表或导出数据
  • 与其他系统进行数据交互

掌握JSON数组的正确处理方法,能够大大提升VBA处理复杂JSON数据的能力,为自动化办公和数据集成提供强大支持。

登录后查看全文
热门项目推荐
相关项目推荐