如何从MacOS上的Excel中的HTTP端点检索JSON并解析它?

时间:2013-02-20 17:21:39

标签: json excel vba excel-vba-mac

我见过How can I send an HTTP POST request to a server from Excel using VBA?

the MacOS-friendly response,描述了如何使用QueryTables从HTTP端点检索数据。它演示了如何检索单个字符串并将其填充到单元格中。

一切都好。现在我想检索多个值。它是一个很大的JSON字符串,我想在填充一个或多个单元格之前在Excel VBA中对其进行后处理。

这怎么可能?

我可以想到一种方法 - 将QueryTables事物的结果放入隐藏的单元格中,然后对隐藏的单元格进行后处理以填充其他单元格。我还没有评估过几个VBA的JSON库。

但这看起来很糟糕。真的,我不想依赖于将JSON存储为单元格中的值。我想将它只存储在我的VBA代码中的变量中。就像我在使用CreateObject(“MSXML2.ServerXMLHTTP”)一样。 (注意:MacOS上的Excel中无法使用CreateObject()

我理解这里最好的答案可能是:如果您想在Excel中运行应用程序,请获取Windows计算机。

1 个答案:

答案 0 :(得分:8)

您可以在VBA中实际使用Worksheets(0).QueryTable方法。只需查看手册或谷歌即可。因此,您不必将json字符串存储到单元格中。

或者我使用了像

这样的东西
Public Function GetWebSource(ByRef URL As String) As String
    Dim xml As IXMLHTTPRequest
    On Error Resume Next
    Set xml = CreateObject("Microsoft.XMLHTTP")
    With xml
        .Open "GET", URL, False
        .send
        GetWebSource = .responseText
    End With
    Set xml = Nothing
End Function

下载json字符串。

四处寻找解析器。像Parsing JSON in Excel VBA这样的人应该满足你的需求。