44 lines
1.5 KiB
QBasic
44 lines
1.5 KiB
QBasic
|
Attribute VB_Name = "JsonDebugPrint"
|
||
|
Option Explicit
|
||
|
|
||
|
|
||
|
Public Sub TestPrintJSON()
|
||
|
PrintJSON ParseJSON("[1,2,3]")
|
||
|
PrintJSON ParseJSON("[{""a"":123,""b"":[56,7,78]}]")
|
||
|
End Sub
|
||
|
|
||
|
' This is definitely NOT a pretty printer. It was written merely as a debugging
|
||
|
' tool to make sense of the objects that come out of JsonConverter.ParseJSON.
|
||
|
' It doesn't format in the best way possible, but it does provide a semi-readable
|
||
|
' view of the data in the JSON object.
|
||
|
' Phil Runninger 3/1/2023
|
||
|
'
|
||
|
Public Sub PrintJSON(obj As Variant, Optional level As Integer = 0)
|
||
|
Dim itm As Variant
|
||
|
Dim first As Boolean
|
||
|
Select Case TypeName(obj)
|
||
|
Case "Dictionary"
|
||
|
Debug.Print String(level * 2, " "); "{"
|
||
|
first = True
|
||
|
For Each itm In obj
|
||
|
If Not first Then Debug.Print String((level + 1) * 2, " "); ","
|
||
|
first = False
|
||
|
Debug.Print String((level + 1) * 2, " "); itm; ":";
|
||
|
PrintJSON obj(itm), level + 1
|
||
|
Next
|
||
|
Debug.Print String(level * 2, " "); "}"
|
||
|
Case "Collection"
|
||
|
Debug.Print String(level * 2, " "); "["
|
||
|
first = True
|
||
|
For Each itm In obj
|
||
|
If Not first Then Debug.Print String(level * 2, " "); ","
|
||
|
first = False
|
||
|
PrintJSON itm, level + 1
|
||
|
Next
|
||
|
Debug.Print String(level * 2, " "); "]"
|
||
|
Case Else
|
||
|
Debug.Print String(level * 2, " "); obj;
|
||
|
End Select
|
||
|
End Sub
|
||
|
|