Skip to content

cJson Quick Start Guide

1. Add Reference

Ensure your project has a reference to the VBMAN library added:

vb
'Reference in code using the following methods
Dim Json As New VBMANLIB.cJson
'Or directly use the VBMAN global instance
With VBMAN.Json
    '...
End With

2. Creating JSON Objects

2.1 Creating Simple Key-Value Pair Objects

vb
Private Sub CreateSimpleJson()
    With New VBMANLIB.cJson
        'Directly assign to create key-value pairs
        .Item("servicesn") = "0001"
        .Item("userid") = "admin"
        .Item("token") = ""
        .Item("argcounts") = 2

        'Encode to JSON string
        Dim JsonString As String
        JsonString = .Encode(, 2, True)

        Debug.Print JsonString
    End With
End Sub

Output:

json
{
  "servicesn": "0001",
  "userid": "admin",
  "token": "",
  "argcounts": 2
}

2.2 Creating Nested Objects

vb
Private Sub CreateNestedJson()
    With New VBMANLIB.cJson
        .Item("name") = "John"
        .Item("age") = 25

        'Create nested object (using NewItem)
        With .NewItem("address")
            .Item("city") = "Beijing"
            .Item("district") = "Haidian"
        End With

        Debug.Print .Encode(, 2, True)
    End With
End Sub

Output:

json
{
  "name": "John",
  "age": 25,
  "address": {
    "city": "Beijing",
    "district": "Haidian"
  }
}

2.3 Creating Arrays

vb
Private Sub CreateArrayJson()
    With New VBMANLIB.cJson
        .Item("code") = 200
        .Item("msg") = "Success"

        'Create array (using NewItems)
        With .NewItems("data")
            'Add array elements (using NewItem to create object elements)
            With .NewItem()
                .Item("id") = 1
                .Item("name") = "Project 1"
            End With
            With .NewItem()
                .Item("id") = 2
                .Item("name") = "Project 2"
            End With
        End With

        Debug.Print .Encode(, 2, True)
    End With
End Sub

Output:

json
{
  "code": 200,
  "msg": "Success",
  "data": [
    { "id": 1, "name": "Project 1" },
    { "id": 2, "name": "Project 2" }
  ]
}

3. Parsing JSON Strings

3.1 Parsing Simple Objects (Using Root)

vb
Private Sub ParseSimpleJson()
    Dim JsonText As String
    JsonText = "{""name"":""John"",""age"":25,""city"":""Beijing""}"

    With New VBMANLIB.cJson
        .Decode JsonText

        'Access using Root - recommended (returns Object, supports chained access)
        Debug.Print .Root("name")  'Output: John
        Debug.Print .Root("age")   'Output: 25
        Debug.Print .Root("city")  'Output: Beijing

        'Or use the default member feature (more concise)
        Debug.Print $("name")      'Output: John
    End With
End Sub

3.2 Parsing Nested Objects and Arrays (Using Root Chained Access)

vb
Private Sub ParseComplexJson()
    Dim JsonText As String
    JsonText = "{""code"":200,""data"":[{""id"":1,""name"":""Project 1""},{""id"":2,""name"":""Project 2""}]}"

    With New VBMANLIB.cJson
        .Decode JsonText

        'Access top-level fields using Root
        Debug.Print .Root("code")  'Output: 200

        'Use Root chained access for array elements (Note: index starts from 1)
        Debug.Print .Root("data")(1)("name")  'Output: Project 1
        Debug.Print .Root("data")(2)("name")  'Output: Project 2

        'Loop through array (using Root)
        Dim Item As Variant
        For Each Item In .Root("data")
            Debug.Print Item("id") & " - " & Item("name")
        Next
    End With
End Sub

4. File Operations

4.1 Saving JSON to a File

vb
Private Sub SaveJsonToFile()
    With VBMAN.Json
        .Item("name") = "Test data"
        .Item("version") = "1.0"

        'Save to file (parameters: path, encoding, indent, display Chinese)
        .SaveTo "C:\tmp\data.json", "UTF-8", 2, True

        MsgBox "File saved"
    End With
End Sub

4.2 Loading JSON from a File

vb
Private Sub LoadJsonFromFile()
    With New VBMANLIB.cJson
        'Load from file
        .LoadFrom "C:\tmp\data.json", "UTF-8"

        'Use data (access using Root)
        MsgBox .Root("name")
    End With

    'Or directly use (Root is default member)
    MsgBox VBMAN.Json.LoadFrom("C:\tmp\data.json")("name")
End Sub

5. Using with HTTP Requests

5.1 Sending JSON Data (POST Request)

vb
Private Sub PostJsonData()
    'Construct request body
    Dim Body As String
    With New cJson
        .Item("sysStuffCode") = "TEST001"
        .Item("quantity") = 2
        With .NewItems("detailList")
            Dim i As Long
            For i = 0 To 3
                With .NewItem()
                    .Item("test") = 123
                    .Item("time") = Now()
                End With
            Next
        End With
        Body = .Encode()
    End With

    'Send request
    With New cHttpClient
        .RequestHeaders.Add "Content-Type", "application/json"
        Dim Response As String
        Response = .Fetch(ReqPost, "https://api.example.com/submit", Body).ReturnText()
        Debug.Print Response
    End With
End Sub

5.2 Parsing Returned JSON Data

vb
Private Sub ParseApiResponse()
    With VBMAN.HttpClient.Fetch(ReqGet, "https://api.example.com/data").ReturnJson()
        'Format and display returned content
        Text1.Text = .Encode(, 2, True)

        'Extract data
        If .Item("code") = 200 Then
            Dim Item As Variant
            For Each Item In .Item("data")
                List1.AddItem Item("name")
            Next
        Else
            MsgBox .Item("message")
        End If
    End With
End Sub

6. Common Error Handling

vb
Private Sub SafeJsonOperation()
    On Error GoTo ErrorHandler

    Dim Json As New cJson

    'Parse potentially malformed JSON
    Json.Decode Text1.Text

    'Check if parsing was successful
    If Json.LastSuccess Then
        MsgBox "Parse successful: " & Json.Item("name")
    Else
        MsgBox "Parse failed: " & Json.LastError
    End If

    Exit Sub

ErrorHandler:
    MsgBox "Operation error: " & Err.Description
End Sub

Next Steps

VB6 and LOGO copyright of Microsoft Corporation