add variant array to json funtion
This commit is contained in:
parent
aab361bbf3
commit
3a873c9fdb
@ -1974,3 +1974,61 @@ Public Function ADOp_BuildInsertSQL(ByRef tbl() As String, target As String, tri
|
|||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Function json_from_table(ByRef tbl() As Variant, ByRef array_label As String, Optional strip_braces As Boolean) As String
|
||||||
|
|
||||||
|
|
||||||
|
Dim ajson As String
|
||||||
|
Dim json As String
|
||||||
|
Dim r As Integer
|
||||||
|
Dim c As Integer
|
||||||
|
Dim needs_comma As Boolean
|
||||||
|
Dim needs_braces As Integer
|
||||||
|
|
||||||
|
needs_comma = False
|
||||||
|
needs_braces = 0
|
||||||
|
ajson = ""
|
||||||
|
|
||||||
|
For r = 2 To UBound(tbl, 1)
|
||||||
|
For c = 1 To UBound(tbl, 2)
|
||||||
|
If tbl(r, c) <> "" Then
|
||||||
|
needs_braces = needs_braces + 1
|
||||||
|
If needs_comma Then json = json & ","
|
||||||
|
needs_comma = True
|
||||||
|
If IsNumeric(tbl(r, c)) And Mid(tbl(r, c), 1, 1) <> 0 Then
|
||||||
|
json = json & Chr(34) & tbl(1, c) & Chr(34) & ":" & tbl(r, c)
|
||||||
|
Else
|
||||||
|
json = json & Chr(34) & tbl(1, c) & Chr(34) & ":" & Chr(34) & tbl(r, c) & Chr(34)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next c
|
||||||
|
If needs_braces > 0 Then json = "{" & json & "}"
|
||||||
|
needs_comma = False
|
||||||
|
needs_braces = 0
|
||||||
|
If r > 2 Then
|
||||||
|
ajson = ajson & "," & json
|
||||||
|
Else
|
||||||
|
ajson = json
|
||||||
|
End If
|
||||||
|
json = ""
|
||||||
|
Next r
|
||||||
|
|
||||||
|
'if theres more the one record, include brackets for array
|
||||||
|
'if an array_label is given give the array a key and the array become the value
|
||||||
|
'then if the array is labeled with a key it should have braces unless specified otherwise
|
||||||
|
If r > 3 Then
|
||||||
|
ajson = "[" & ajson & "]"
|
||||||
|
If array_label <> "" Then
|
||||||
|
ajson = """" & array_label & """:" & ajson
|
||||||
|
If Not strip_braces Then
|
||||||
|
ajson = "{" & ajson & "}"
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
If strip_braces Then
|
||||||
|
ajson = Mid(ajson, 2, Len(ajson) - 2)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
json_from_table = ajson
|
||||||
|
|
||||||
|
End Function
|
||||||
|
Loading…
Reference in New Issue
Block a user