我正在使用 Excel VBA 并调用外部 REST API。调用需要 json 格式的有效负载。我在创建 json 格式时遇到问题。
{
"customerContext": {
"identifiers": [
{
"apiName": "email",
"value": "[email protected]"
}
],
"baseTouchpointUri": "physical://webinar"
},
"activities": [
{
"propositionCode": "Homepage",
"activityTypeCode": "ATTEND_ROADSHOW",
"timestamp": "2019-12-27T10:31:40Z"
}
]
}
vba代码如下:
Sub UploadOfflineInteraction()
Dim apiName As String
Dim apiName_value As String
Dim baseTouchpoint As String
Dim propositionCode As String
Dim activityTypeCode As String
Dim timestamp As String
Dim NoOfRows As Integer
Dim i As Integer
ActiveWorkbook.Worksheets("Data").Activate
NoOfRows = ActiveWorkbook.Worksheets("Data").Range("A2").End(xlDown).row
For i = 1 To NoOfRows
apiName = ActiveWorkbook.Worksheets("Data").Cells(i, 1).Value
apiName_value = ActiveWorkbook.Worksheets("Data").Cells(i, 2).Value
baseTouchpoint = ActiveWorkbook.Worksheets("Data").Cells(i, 3).Value
propositionCode = ActiveWorkbook.Worksheets("Data").Cells(i, 4).Value
activityTypeCode = ActiveWorkbook.Worksheets("Data").Cells(i, 5).Value
timestamp = ActiveWorkbook.Worksheets("Data").Cells(i, 6).Value
Dim tid
tid = SentOfflineInteraction(apiName, apiName_value, baseTouchpoint, propositionCode, activityTypeCode, timestamp)
Next i
End Sub
Function SentOfflineInteraction(apiName As String, apiName_value As String, _
baseTouchpoint As String, propositionCode As String, _
activityTypeCode As String, timestamp As String) As String
Dim c As Collection
Dim d As Dictionary
Dim e As Dictionary
Dim f As Dictionary
Dim json As String
Set c = New Collection
Set d = New Dictionary
Set e = New Dictionary
Set f = New Dictionary
d.Add "propositionCode", propositionCode
d.Add "activityTypeCode", activityTypeCode
d.Add "timestamp", timestamp
c.Add d
f.Add "activities", c
Dim c1 As Collection
Dim d1 As Dictionary
Dim e1 As Dictionary
Dim f1 As Dictionary
Set c1 = New Collection
Set d1 = New Dictionary
Set e1 = New Dictionary
Set f1 = New Dictionary
d1.Add "apiName", apiName
d1.Add "value", apiName_value
c1.Add d1
f1.Add "identifiers", c1
Dim c2 As Collection
Dim d2 As Dictionary
Dim e2 As Dictionary
Dim f2 As Dictionary
Set c2 = New Collection
Set d2 = New Dictionary
Set e2 = New Dictionary
Set f2 = New Dictionary
d2.Add f1
d2.Add "baseTouchpointUri", baseTouchpoint
c2.Add d2
f2.Add "customerContext", c2
Dim c3 As Collection
Dim d3 As Dictionary
Dim e3 As Dictionary
Dim f3 As Dictionary
Set c3 = New Collection
Set d3 = New Dictionary
Set e3 = New Dictionary
Set f3 = New Dictionary
d3.Add f2
d3.Add f1
c3.Add d3
json = JsonConverter.ConvertToJson(ByVal c3)
Debug.Print json
End Function
我面临的问题是如何创建这个 json 有效负载。以下结构在 d2 处失败。添加 f1
你能让我知道如何构建这个 json