2016-07-24 27 views
0

好吧,所以我需要从JSON文件中获取值以用于VBScript中。VBScript - 解析Json的值和存储为变量

下面是示例内容:

{ 
"installedPacks": { 
"vanilla": { 
    "name": "vanilla", 
    "build": "1.7.10", 
    "directory": "%MODPACKS%\\vanilla" 
} 

我想读出的文件的内容,并且具体地定位在构建值(在这种情况下是1.7.10)并将其分配给用于可变以后使用。

我有一个现有的应用程序数据变量转换为:

objShell.ExpandEnvironmentStrings("%APPDATA%") & "\" 

我需要打开该文件是位置:AppData的& “.technic \ installedPacks”

+0

你是如何得到json的? – SearchAndResQ

+1

对不起,我设法弄清楚了。我只是使用脚本来打开文件,并与正则表达式匹配。我将在上面的代码中进行编辑。 – Bolte

回答

1

这里是我使用的代码。

Function ForgeJSON(strTxt) 

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.OpenTextFile(AppData & "ModPacker\ForgeVer.json", 1) 
installedPacks = objFile.ReadAll 

Dim oRE 
Dim colMatches 
Dim oMatch, I 
Set oRE = New Regexp 
oRE.Global = True 
oRE.Pattern = """build"":\s""(.+?)""" 
oRE.IgnoreCase = False 
Set colMatches = oRE.Execute(strTxt) 
For Each oMatch In colMatches 

    If oMatch.SubMatches(0) = "recommended" Then 
    Else 
     strNextmap = oMatch.SubMatches(0) 
    End If 

Next 

If strNextmap = "" Or IsNull (strNextmap) Then 
ParseJSON = "No Match Found" 
Else 
ParseJSON = strNextmap 
End If 
End Function