Sử dụng JsonConverter VBA-tools VBA-JSON

Hướng dẫn sử dụng JsonConverter trong VBA (Access / Excel)

  1. Giới thiệu ngắn
  2. Cài đặt JsonConverter
  3. Cách dùng cơ bản
  4. Lưu ý & mẹo
  5. Tài nguyên
  6. Video hướng dẫn sử dụng JsonConverter

1. Giới thiệu ngắn

JsonConverter là thư viện mã nguồn mở giúp VBA đọc/ghi JSON dễ dàng.
Nguồn chính: https://github.com/VBA-tools/VBA-JSON

2. Cài đặt JsonConverter

  1. Tải file: vào LINK TẢI
  2. Import vào VBA:
    1. Mở Access hoặc Excel → nhấn Alt + F11 để mở VBA Editor.
    2. Menu: File → Import File... → chọn JsonConverter.bas.
    3. Sau khi import, bạn sẽ thấy module JsonConverter trong Project Explorer.
  3. Bật reference (khuyên dùng): vào VBA Editor → Tools → References → tick Microsoft Scripting Runtime → OK.

3. Cách dùng cơ bản

Những hàm thường dùng:

  • JsonConverter.ParseJson(jsonText) → trả về Object (Dictionary/Collection) để đọc.
  • JsonConverter.ConvertToJson(vbObject) → chuyển Dictionary/Collection sang chuỗi JSON.

Ví dụ 1 — Parse JSON từ chuỗi

Sub ViDuParseJSON()
    Dim jsonText As String
    Dim json As Object
    Dim item As Variant

    ' Ví dụ JSON nhận từ web
    jsonText = "[{""STT"":1,""HoTen"":""Nguyễn An"",""Lop"":""10A1""}," & _
                "{""STT"":2,""HoTen"":""Lê Bình"",""Lop"":""10A2""}]"

    ' Dùng JsonConverter để đọc
    Set json = JsonConverter.ParseJson(jsonText)

    ' Duyệt từng phần tử (mỗi phần tử là 1 Dictionary)
    For Each item In json
        Debug.Print item("STT"), item("HoTen"), item("Lop")
    Next item
End Sub

Kết quả:

1   Nguyễn An    10A1
2   Lê Bình      10A2

Ví dụ 2 — Tạo JSON từ Dictionary

Sub ViDuTaoJSON()
    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")

    dict("user") = "admin"
    dict("pass") = "123456"

    Dim jsonText As String
    jsonText = JsonConverter.ConvertToJson(dict)

    Debug.Print jsonText
End Sub

Kết quả: {"user":"admin","pass":"123456"}

Ví dụ 3 — Duyệt JSON nhiều cấp

{
  "status": "ok",
  "data": [
    {"id": 1, "name": "A"},
    {"id": 2, "name": "B"}
  ]
}

Code VBA:

Sub ViDuJSON_Nested()
    Dim json As Object
    Dim jsonText As String
    Dim item As Variant

    jsonText = "{""status"":""ok"",""data"":[{""id"":1,""name"":""A""},{""id"":2,""name"":""B""}]}"

    Set json = JsonConverter.ParseJson(jsonText)

    Debug.Print "Trạng thái:", json("status")

    For Each item In json("data")
        Debug.Print item("id"), item("name")
    Next item
End Sub

 

4. Lưu ý & mẹo

  • Nếu JSON rất lớn, cân nhắc xử lý từng phần (paging) để tránh lỗi bộ nhớ.
  • Nếu field có thể không tồn tại, kiểm tra bằng If json.Exists("key") Then ... (nếu dùng Dictionary).
  • Luôn bật Microsoft Scripting Runtime để dùng Dictionary/Dictionary methods nhanh hơn.
  • Nếu muốn convert array VBA → JSON, dùng Collection hoặc Scripting.Dictionary trước khi gọi ConvertToJson.

5. Tài nguyên

6. Video hướng dẫn sử dụng JsonConverter

 

Tìm kiếm:

Bài viết liên quan:

Hướng dẫn sử dụng JsonConverter trong VBA (Access / Excel)