【发布时间】:2017-09-28 12:52:18
【问题描述】:
我有以下代码 VBA 代码(用于 Excel 模块)
Function getDesc(ByVal pCode As String) As String
Dim oRequest As Object
Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
oRequest.Open "GET", "https://my.url.com/?filter=CODE=" & pCode, False
oRequest.SetRequestHeader "Accept", "application/json"
oRequest.Send ""
Set props = jsonDecode(oRequest.ResponseText)
getDesc = props.row_data
End Function
Function jsonDecode(jsonString As Variant)
Set sc = CreateObject("ScriptControl"): sc.Language = "JScript"
Set jsonDecode = sc.Eval("(" + jsonString + ")")
End Function
我不知道如何将属性LONG_DESCRIPTION 分配给getDesc =
我需要什么正确的语法?或者,我将接受任何允许我返回 LONG_DESCRIPTION 字符串的解决方案。
【问题讨论】:
-
请发布
oRequest.ResponseText的内容,至少是相关部分。 -
请注意,以这种方式使用 ScriptControl ActiveX 可能会使系统容易受到响应中恶意 JS 代码的攻击。看看this answer 和VBA-JSON-parser on GitHub。
-
使用这个库可能会有所帮助github.com/VBA-tools/VBA-JSON