2016-07-24 14 views
0

Ok Leute, also muss ich einen Wert aus einer JSON-Datei erhalten, die in einem VBScript verwendet wird. HierVBScript - JSon-Wert parsen und als Variable speichern

ist die Probe Inhalt:

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

Ich möchte den Inhalt der Datei lesen und suchen gezielt den Build-Wert (der in diesem Fall ist 1.7.10) und weisen Sie auf eine Variable für später verwenden.

Ich habe eine bestehende AppData Variable, die übersetzt:

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

Die Datei ich brauche, ist in Lage zu öffnen: AppData & ".technic \ installedPacks"

+0

Wie bekommen Sie den JSON? – SearchAndResQ

+1

Tut mir leid, ich habe es geschafft, es herauszufinden. Ich habe gerade ein Skript verwendet, um die Datei zu öffnen und mit regexp übereinzustimmen. Ich werde im obigen Code bearbeiten. – Bolte

Antwort

1

Hier ist der Code, den ich verwendet.

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 
Verwandte Themen