В моем проекте я создаю файл JSON с кодом VBA. Я хочу создать вложенный файл JSON, чтобы использовать значение моей ячейки Excel. Для этого я написал следующий код, но он не создает вложенный файл JSON, и я не знаю, как это сделать.
Dim excelRange As Range
Dim jsonItems As New Collection
Dim jsonDictionary As New Dictionary
Dim jsonFileObject As New Scripting.FileSystemObject
Dim jsonFileExport As TextStream
Dim a As Long
Dim cell As Variant
Set excelRange = Cells(2, 1).CurrentRegion
For a = 2 To excelRange.Rows.Count
jsonDictionary("refType") = Cells(a, 6)
jsonDictionary("reference") = Cells(a, 1)
jsonDictionary("engType") = "A5"
jsonDictionary("DMC") = Cells(a, 16)
jsonDictionary ("subTasks")
jsonItems.Add jsonDictionary
Set jsonDictionary = Nothing
Next a
Set jsonFileExport = jsonFileObject.CreateTextFile("C:\Users\ftk1187\Desktop\jsonExample.json", True)
jsonFileExport.WriteLine (JsonConverter.ConvertToJson(jsonItems, Whitespace:=3))
Я хочу создать вложенный JSON в разделе подзадачи . Я хочу сделать что-то вроде этого.
После многих попыток и помощи Коэна я решаю проблему. Окончательная форма кодов, подобных этому
Dim excelRange As Range
Dim jsonItems As New Collection
Dim jsonDictionary As New Dictionary
Dim jsonDictionary2 As New Dictionary
Dim jsonFileObject As New Scripting.FileSystemObject
Dim jsonFileExport As TextStream
Dim a As Long
Dim cell As Variant
Dim wrdArray() As String
Set excelRange = Cells(2, 1).CurrentRegion
k = 0
For a = 2 To excelRange.Rows.Count
Set jsonDictionary = New Dictionary
jsonDictionary("refType") = Cells(a, 6)
jsonDictionary("reference") = Cells(a, 1)
jsonDictionary("engType") = "A5"
jsonDictionary("DMC") = Cells(a, 16)
wrdArray() = Split(Cells(a, 17), ";")
Set jsonDictionary2 = New Dictionary
For c = 0 To UBound(wrdArray) - 1
jsonDictionary2("SUBTASK" & c) = subs(c + k)
Next c
k = k + UBound(wrdArray)
jsonDictionary.Add "subTasks", jsonDictionary2
jsonItems.Add jsonDictionary
'Set jsonDictionary = Nothing
'Set jsonDictionary2 = Nothing
Next a
Set jsonFileExport = jsonFileObject.CreateTextFile("C:\Users\ftk1187\Desktop\jsonExample.json", True)
jsonFileExport.WriteLine (JsonConverter.ConvertToJson(jsonItems, Whitespace:=3))