2021年12月20日 星期一

VBA parse JSON 的方法

VBScript 目前沒有能夠直接解析 JSON 語句的能力,
但是 Javascript 可以,
所以在我們的 VBA 需要解析 JSON 時,
可以移用 WSF 檔可以同時存在 VBScript 和 Javascript 的特性,
讓 Javascript 幫助 VBScript 解析 JSON,
以下給出一個範例:

jsonParseTest.wsf:
<package>
<job id=XXX>

<script language="JScript">
 Array.prototype.get = function(x) { return this[x]; };
 function parseJSON(jsonStr){
  return eval("(" + jsonStr + ")");
 }
</script>

<script language="VBScript">
 Dim jsonStr, jsonObj
 jsonStr = "{a:""aaa"", b:{ name:""bb"", value:""text"" }, c:[""item0"", ""item1"", ""item2""]}"
 Set jsonObj = parseJSON(jsonStr)
        WScript.Echo((jsonObj.c).get(0)) ' "item0"
        WScript.Echo(jsonObj.a) ' "aaa"
        WScript.Echo(jsonObj.b.name) ' "bb"
</script>

</job>
</package>

接著打開 Windows 的命令例樣式 cmd Console,
輸入 (假設 jsonParseTest.wsf 放D槽)
wscript (WScript.Echo 會用彈跳視窗的方式顯示內容) 
或 cscript (WScript.Echo 會將內容顯示在命令列(cmd)視窗中) :
wscript D:\jsonParseTest.wsf
cscript D:\jsonParseTest.wsf
結果如下圖:

沒有留言 :

張貼留言