You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用VBA-JSON-parser提取JSON中所有层级的name字段值?

提取嵌套JSON中所有name字段值的实现方案

你可以通过递归遍历解析后的JSON对象来提取所有层级的name字段值,以下是具体实现代码:

1. 递归收集函数

首先添加一个递归过程,用来遍历JSON结构并收集所有name的值:

Sub CollectNameValues(ByVal jsonObj As Variant, ByRef resultCol As Collection)
    Dim key As Variant
    Dim item As Variant
    
    ' 处理Dictionary类型的JSON对象
    If TypeName(jsonObj) = "Dictionary" Then
        ' 检查当前对象是否包含name字段,有则加入结果集合
        If jsonObj.Exists("name") Then
            resultCol.Add jsonObj("name")
        End If
        ' 遍历所有子元素,递归处理
        For Each key In jsonObj.Keys
            CollectNameValues jsonObj(key), resultCol
        Next key
    ' 处理数组类型的JSON结构(如果你的JSON包含数组的话)
    ElseIf IsArray(jsonObj) Then
        For Each item In jsonObj
            CollectNameValues item, resultCol
        Next item
    End If
End Sub

2. 主代码调用

在你已有的代码基础上,调用上面的递归函数并输出结果:

Dim vJson As Object
Dim sState As String
Dim nameValues As New Collection
Dim val As Variant

' 解析JSON(你的原有代码)
JSON.Parse response, vJson, sState

' 调用递归函数收集所有name值
CollectNameValues vJson, nameValues

' 遍历输出结果(可根据需求替换为其他处理逻辑)
For Each val In nameValues
    Debug.Print val
Next val

代码说明

  • 递归函数会自动处理任意层级的嵌套对象,不管name在根层级还是深层子对象中都能被捕获
  • 如果你的JSON包含数组结构,代码也能自动遍历数组元素,提取其中的name值
  • 结果会被存储在Collection中,你可以根据需要将其转换为数组或进行其他业务处理

内容的提问来源于stack exchange,提问作者Snake Eyes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:11:05