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の最新記事】