首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将一个变量设置为另一个变量excel vba中的json值

如何将一个变量设置为另一个变量excel vba中的json值
EN

Stack Overflow用户
提问于 2018-09-20 05:45:04
回答 1查看 1.5K关注 0票数 1

我正在解析的json位于这个URL https://reqres.in/api/users?page=2。我使用下面的代码来解析它。

代码语言:javascript
复制
Option Explicit

Sub Test_LateBinding()

Dim objRequest As Object
Dim strUrl As String
Dim blnAsync As Boolean
Dim strResponse As String

Set objRequest = CreateObject("MSXML2.XMLHTTP")
strUrl = "https://reqres.in/api/users?page=2"
blnAsync = True

With objRequest
    .Open "GET", strUrl, blnAsync
    .SetRequestHeader "Content-Type", "application/json"
    .Send
    'spin wheels whilst waiting for response
    While objRequest.readyState <> 4
        DoEvents
    Wend
    strResponse = .ResponseText
End With

Debug.Print strResponse

End Sub

我可以成功地将json放入strResponse变量中。但是假设我想要一个与"Eve“相等的变量,该变量位于json字符串中的名字之下。如何从json字符串中设置变量firstName = "Eve“。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-20 06:10:31

如果你需要在VBA中使用JSON,那么我建议你使用这个库:

https://github.com/VBA-tools/VBA-JSON

使用该库的一个简单示例:

代码语言:javascript
复制
Public Sub Tester()

    Dim http As Object, JSON As Object, d
    Set http = CreateObject("MSXML2.XMLHTTP")

    http.Open "GET", "https://reqres.in/api/users?page=2", False
    http.SetRequestHeader "Content-Type", "application/json"
    http.Send
    Set JSON = ParseJson(http.responseText)

    For Each d In JSON("data")
        Debug.Print d("id"), d("first_name")
    Next

End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52414592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档