当我们在前端开发中需要使用到json数据时,可以将json对象序列化成json字符串进行传输或者存储,在需要使用时再将json字符串解析成json对象。VBScript是一种Microsoft Visual Basic语言的脚本语言,它可以通过以下两种方法将json字符串解析成json对象。
方法一:使用Microsoft Script Control解析json字符串
使用Microsoft Script Control需要先注册该控件,然后使用CreateObject方法创建该控件对象。
示例代码如下:
'注册Microsoft Script Control
Regsvr32 /s scrobj.dll
'使用Microsoft Script Control解析json字符串
Dim jsonStr, jsonObj, json
Set jsonStr = CreateObject("ScriptControl")
jsonStr.Language = "JScript"
jsonStr.AddCode("var jsonStr = '{""name"":""xiaoming"",""age"":18}'")
Set jsonObj = jsonStr.Eval("(" + jsonStr.CodeObject.JSON.parse(jsonStr.CodeObject.jsonStr) + ")")
MsgBox jsonObj.name & vbCrLf & jsonObj.age '输出:xiaoming 18
Explanation:
在该示例中,我们首先使用Regsvr32 /s命令注册Microsoft Script Control控件。然后通过CreateObject方法创建Control对象,并设置其Language属性为"JScript"。接着通过AddCode方法将json字符串作为变量添加到ScriptControl中,再通过Eval方法使用JavaScript脚本引擎将json字符串解析成json对象。
注意,使用此方法解析json字符串时必须将json字符串作为变量添加到ScriptControl中。
方法二:使用JavascriptSerializer解析json字符串
如果系统中未注册Microsoft Script Control,我们也可以使用.net Framework中的JavaScriptSerializer类解析json字符串。
示例代码如下:
'使用JavascriptSerializer解析json字符串
Dim jsonStr, jsonObj
Set jsonStr = CreateObject("System.Web.Script.Serialization.JavaScriptSerializer")
jsonObj = jsonStr.DeserializeObject("{""name"":""xiaoming"",""age"":18}")
MsgBox jsonObj("name") & vbCrLf & jsonObj("age") '输出:xiaoming 18
Explanation:
在该示例中,我们先通过CreateObject方法创建JavaScriptSerializer对象,然后使用DeserializeObject方法将json字符串解析成json对象。值得注意的是,使用此方法解析json字符串时需要保证系统中安装了.net Framework,否则代码运行时会出现异常。
除了这两种方法外,还可以使用第三方JSON解析库如json2.vbs实现json字符串的解析,但需要先将该库引入项目中才能使用。
希望以上内容能够帮助到您!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:VBScript把json字符串解析成json对象的2个方法 - Python技术站