Visual Basic for Applications:
Lavorare con JSON

Come fare:

VBA non supporta nativamente l’analisi o la generazione di JSON, quindi useremo un linguaggio di scripting come JScript (tramite l’oggetto ScriptControl) per analizzare le stringhe JSON e costruire oggetti JSON. Ecco come puoi analizzare una stringa JSON in VBA:

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 "Nome: " & parsed.name & ", Età: " & parsed.age & ", Città: " & parsed.city
End Sub

Per generare JSON, potresti usare un approccio simile, costruendo la stringa JSON tramite concatenazione:

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

Approfondimento

Gli approcci mostrati sfruttano lo ScriptControl per gestire JSON, affidando essenzialmente il lavoro a un motore JavaScript. Si tratta di un metodo creativo ma non necessariamente il modo più efficiente o moderno di lavorare con JSON in un contesto VBA. In applicazioni più complesse, questo metodo potrebbe diventare ingombrante e introdurre sovraccarichi di prestazioni o preoccupazioni di sicurezza, poiché ScriptControl si esegue in un ambiente che ha pieno accesso al computer host.

Altri ambienti di programmazione, come Python o JavaScript, offrono supporto integrato per JSON, rendendoli più adatti per applicazioni che richiedono una manipolazione estensiva di JSON. Questi linguaggi forniscono librerie complete che facilitano non solo l’analisi e la generazione, ma anche l’interrogazione e la formattazione dei dati JSON.

Nonostante queste limitazioni in VBA, capire come lavorare con JSON è vitale in un mondo in cui lo scambio di dati basato sul web e i file di configurazione sono prevalentemente in formato JSON. Per i programmatori VBA, padroneggiare queste tecniche apre opportunità per integrarsi con le API web, interpretare i file di configurazione o persino costruire semplici applicazioni web. Tuttavia, quando i progetti crescono in complessità o richiedono alte prestazioni, gli sviluppatori potrebbero considerare l’utilizzo di ambienti di programmazione più amichevoli verso JSON.