如何添加嵌套字典&;VBA/Json Ms Access 2016中的集合
我们公司要求以Json格式将发票详细信息发送给我们的税务顾问进行评估,这意味着生成的每张发票都必须通过税务顾问进行验证。如果发票生成不正确,税务顾问将其作为拒绝发票发回。这里的问题是,在导出Ms access 2016发票数据后,我们无法获得正确的Json格式 我在下面有一段代码,它几乎完成了将Ms Access数据导出为正确的Json格式的工作,但我有以下两件事要做: 当前Json格式:如何添加嵌套字典&;VBA/Json Ms Access 2016中的集合,json,vba,dictionary,Json,Vba,Dictionary,我们公司要求以Json格式将发票详细信息发送给我们的税务顾问进行评估,这意味着生成的每张发票都必须通过税务顾问进行验证。如果发票生成不正确,税务顾问将其作为拒绝发票发回。这里的问题是,在导出Ms access 2016发票数据后,我们无法获得正确的Json格式 我在下面有一段代码,它几乎完成了将Ms Access数据导出为正确的Json格式的工作,但我有以下两件事要做: 当前Json格式: { "PosSerialNumber":"", "IssueTime":"", "TransactionT
{
"PosSerialNumber":"",
"IssueTime":"",
"TransactionType":0,
"PaymentMode":0,
"SaleType":0,
"Items":{
"ItemId":1,
"Description":"Apple"
"Barcode":"458630036",
"Quantity":8,
"UnitPrice":2,
"Discount":0,
"Taxable":[
"A",
"T"
]
}
}
Option Compare Database
Option Explicit
Private Sub Command0_Click()
Dim foo As New Dictionary
Set foo = New Dictionary
Dim Noor As Dictionary
Set Noor = New Dictionary
Dim hoo As New Collection
Dim goo As New Dictionary
Set goo = New Dictionary
Dim Zoo As New Dictionary
Set Zoo = New Dictionary
Dim Koo As New Collection
Dim json As String
With foo
.Add "PosSerialNumber", Me.txtchris
.Add "IssueTime", Me.txtAddress
.Add "TransactionTyp", 0
.Add "PaymentMode", 0
.Add "SaleType", 0
.Add "Items", Noor
Noor.Add "ItemID", 1
Noor.Add "Description", "Apple"
Noor.Add "BarCode", "4589630036"
Noor.Add "Quantity", 8
Noor.Add "UnitPrice", 2
Noor.Add "Discount", 0
Noor.Add "Taxable", hoo
hoo.Add "A"
hoo.Add "T"
End With
Dim member As Variant
For Each member In foo
Next
MsgBox JsonConverter.ConvertToJson(foo, Whitespace:=3), vbOKOnly, "Audited by C H"
以下是两件事:
(1) 正如您看到的,它在“Items”上缺少一个方括号:{,正确的应该是“Items”:[{以及结束语]
(2) 我还想添加(“Total”,120,“IstaxInclusive”:true),以便最终代码如下所示:
下面是我们正在使用的当前MS Access VBA代码,以尝试实现所需的目标
用于生成上述Json格式的VBA代码:
{
"PosSerialNumber":"",
"IssueTime":"",
"TransactionType":0,
"PaymentMode":0,
"SaleType":0,
"Items":{
"ItemId":1,
"Description":"Apple"
"Barcode":"458630036",
"Quantity":8,
"UnitPrice":2,
"Discount":0,
"Taxable":[
"A",
"T"
]
}
}
Option Compare Database
Option Explicit
Private Sub Command0_Click()
Dim foo As New Dictionary
Set foo = New Dictionary
Dim Noor As Dictionary
Set Noor = New Dictionary
Dim hoo As New Collection
Dim goo As New Dictionary
Set goo = New Dictionary
Dim Zoo As New Dictionary
Set Zoo = New Dictionary
Dim Koo As New Collection
Dim json As String
With foo
.Add "PosSerialNumber", Me.txtchris
.Add "IssueTime", Me.txtAddress
.Add "TransactionTyp", 0
.Add "PaymentMode", 0
.Add "SaleType", 0
.Add "Items", Noor
Noor.Add "ItemID", 1
Noor.Add "Description", "Apple"
Noor.Add "BarCode", "4589630036"
Noor.Add "Quantity", 8
Noor.Add "UnitPrice", 2
Noor.Add "Discount", 0
Noor.Add "Taxable", hoo
hoo.Add "A"
hoo.Add "T"
End With
Dim member As Variant
For Each member In foo
Next
MsgBox JsonConverter.ConvertToJson(foo, Whitespace:=3), vbOKOnly, "Audited by C H"
端接头
所需格式:
{
"PosSerialNumber":"",
"IssueTime":"",
"TransactionType":0,
"PaymentMode":0,
"SaleType":0,
"Items":[{
"ItemId":1,
"Description":"Apple"
"Barcode":"458630036",
"Quantity":8,
"UnitPrice":2,
"Discount":0,
"Taxable":[
"A",
"T"
]
"Total":120,
"IsTaxInclusive":true,
"SP":0
}
]
}
JSON中的方括号表示数组。
JsonConverter
将集合或数组包装在[]
中。
您可以将Noor
包装到Array()
中,也可以将其添加到集合中
排列
收藏