Visual Basic for Applications:
Työskentely JSON:n kanssa
Kuinka:
VBA ei natiivisti tue JSONin jäsentämistä tai tuottamista, joten käytämme skriptikieltä, kuten JScriptiä (ScriptControl-objektin kautta) JSON-merkkijonojen jäsentämiseen ja JSON-objektien rakentamiseen. Näin voit jäsentää JSON-merkkijonon VBA:ssa:
Function ParseJSON(ByVal jsonString As String) As Object
Dim scriptControl As Object
Set scriptControl = CreateObject("MSScriptControl.ScriptControl")
scriptControl.Language = "JScript"
scriptControl.Eval "var obj = (" & jsonString & ")"
Set ParseJSON = scriptControl.CodeObject.obj
End Function
Sub DemoParseJSON()
Dim jsonString As String
jsonString = "{""name"":""John"", ""age"":30, ""city"":""New York""}"
Dim parsed As Object
Set parsed = ParseJSON(jsonString)
MsgBox "Nimi: " & parsed.name & ", Ikä: " & parsed.age & ", Kaupunki: " & parsed.city
End Sub
JSONin tuottamiseen voisit käyttää samankaltaista lähestymistapaa, rakentaen JSON-merkkijonon yhdistelemällä:
Function GenerateJSON(name As String, age As Integer, city As String) As String
GenerateJSON = "{""name"":""" & name & """, ""age"":" & age & ", ""city"":""" & city & """}"
End Function
Sub DemoGenerateJSON()
Dim jsonString As String
jsonString = GenerateJSON("Jane", 28, "Los Angeles")
MsgBox jsonString
End Sub
Syväsukellus
Esitetyt lähestymistavat hyödyntävät ScriptControlia JSONin käsittelyyn, käytännössä ulkoistaen työn JavaScript-moottorille. Tämä on luova kiertotapa, mutta ei välttämättä tehokkain tai modernein tapa työskennellä JSONin kanssa VBA-kontekstissa. Monimutkaisemmissa sovelluksissa tämä menetelmä saattaa muodostua hankalaksi ja tuoda mukanaan suorituskyvyn heikkenemistä tai turvallisuushuolia, koska ScriptControl suorittaa ympäristössä, jolla on täysi pääsy isäntätietokoneeseen.
Muut ohjelmointiympäristöt, kuten Python tai JavaScript, tarjoavat sisäänrakennetun tuen JSONille, tehdessään niistä sopivampia sovelluksille, jotka vaativat laajaa JSON-muokkausta. Nämä kielet tarjoavat kattavia kirjastoja, jotka helpottavat paitsi jäsentämistä ja tuottamista, myös JSON-datankyselyä ja -muotoilua.
Huolimatta näistä rajoituksista VBA:ssa, JSONin käsittelyn ymmärtäminen on tärkeää maailmassa, jossa web-pohjainen datanvaihto ja konfiguraatiotiedostot ovat pääosin JSON-muodossa. VBA-ohjelmoijille näiden tekniikoiden hallitseminen avaa mahdollisuuksia integroitumiseen web-APIihin, konfiguraatiotiedostojen tulkintaan tai jopa yksinkertaisten web-sovellusten rakentamiseen. Kuitenkin, kun projektit kasvavat monimutkaisuudessa tai vaativat suorituskykyä, kehittäjät saattavat harkita JSON-ystävällisempien ohjelmointiympäristöjen hyödyntämistä.