WSH では、VBScript から JavaScript が呼べます。経験則からして、JavaScript の 関数を上方に先に書く必要があります。Json の文字列は () で挟んで eval すると 結果が Json オブジェクトになりますが、Json 文字列のセキュリティを考えるのなら ば、prototype.js のメソッドを使うといいと思います。 VBScript から、VB の配列で参照したいプロパティの階層をセットして渡します。
<JOB>
<SCRIPT language="JavaScript">
function getJson( json_str, arr_vb_obj ) {
' arr_vb_obj は、VBArray(セーフ配列)
' arr_vb は、JScript 内での VBArrayラッパー
var arr_vb = new VBArray(arr_vb_obj);
' JScript の配列に変換
var arr = arr_vb.toArray();
' JSON 文字列をオブジェクト化
var json = eval("(" + json_str + ")");
' 階層構造の JSON を順次撮りだす処理
' この場合は結果として "データ" を取り出す
for( var i = 0; i < arr.length; i++ ) {
json = json[arr[i]]
}
return json;
}
</SCRIPT>
<SCRIPT language="VBScript">
arr = Array("aaa","bbb","ccc")
json = "{ ""aaa"" : { ""bbb"" : { ""ccc"" : ""データ"" }}}"
MsgBox(getJson( json, arr ))
</SCRIPT>
</JOB>
|
|
【VBScriptの最新記事】