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

我见过如何使用VBA从Excel发送HTTP POST请求到服务器?

以及介绍如何使用QueryTable从HTTP端点检索数据的MacOS友好响应 。 它演示了如何检索单个string并将其填充到单元格中。

都好。 现在我想检索一个以上的值。 这是一个很大的JSONstring,我想在填充一个或多个单元格之前在Excel VBA中进行后续处理。

这怎么可能?

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

但是,这似乎很hacky。 真的,我不想依赖将JSON作为值存储在单元格中。 我想只将它存储到我的VBA代码中的一个variables。 就像我使用CreateObject(“MSXML2.ServerXMLHTTP”)一样。 ( NB:CreateObject()在MacOS上的Excel中不可用 )。

而且我明白这里最好的答案可能是: 如果你想在Excel中运行应用程序,可以获取一台Windows机器。

您可以在VBA中使用Worksheets(0).QueryTable方法。 只要看看手册或谷歌。 所以你不必把你的jsonstring存储到一个单元格中。

或者我用过类似的东西

 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 

下载一个jsonstring。

四处寻找parsing器。 有些人喜欢在Excel VBA中parsingJSON应该满足您的需求。