JSON
VBA
kintone

VBA で JSON 変換する cJobject ライブラリ

More than 1 year has passed since last update.

cJobject について

VBA で JSON を扱う場合、ほとんど ScriptControl か JSONLib を使っているようです。
ただ、制約があったり機能が少ないなどあまり使い勝手はよくないです。
cJobject も json 変換出来るライブラリですが、日本で紹介されたサイトが見当たりませんので、ご紹介します。

Kintone レポートツールで使用したライブラリですが、これをベースに kintone 用ライブラリを作成して使用しています。
検索やソート、クローン機能などもあるようですが試していません。
もう少し日本でも使用例が増えて、情報が集まってくれるとうれしいです。

cJobject は、Desktop Liberation で公開されている巨大なライブラリの一部です。
データ関連について、あまりにも機能が多すぎて、json 関連の機能があることが埋没してしまっています。
また、巨大ライブラリの一部ということで、クラス、標準モジュールなどソースが分散しているのが、少し使いにくい点です。
最初に使ったときは、よくわからず巨大ライブラリから必要な機能を切り出して使いました。

ダウンロード

cJobject の機能を手っ取り早く試すには、下記からexcel ファイルをダウンロードします。
ダウンロードページ で、Data Manipulation を展開すると、最後にvanillacJobject.xlsm があります。

vanillacJobject.xlsm ファイル
image

json 変換のコード例

Private Function getMoreData() As cJobject

    ' just get some vanilla json data
    Set getMoreData = JSONParse("[" & _
            "{'name':'john', 'demographics':{'age':25,'sex':'male'}}," & _
            "{'name':'mary', 'demographics':{'age':50,'sex':'female'}}" & _
        "]")

End Function
' simple test
Private Sub showData()
    Dim job As cJobject, jo As cJobject, jp As cJobject, jm As cJobject

    Set job = getMoreData()

    ' stringify
    Debug.Print job.stringify

vba のデバッグ実行で、json オブジェクトを階層で表示できます。
image

使い方などは、そのうち少しづつでも紹介できればと思います。