2016-07-24 2 views
0

그래, VBScript 내부에서 사용할 JSON 파일에서 값을 가져와야합니다. 여기 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

내가 사용하는 코드는

나는로 변환 기존의 AppData 변수가 있습니다.

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 
관련 문제