JSONを扱いやすくするクラスを作りました

2017.10.30  投稿者: moongift
開発

Web APIを使った開発時に便利なJSONクラスの紹介です。

Web APIを使った開発を行う場合、そのデータのやり取りにJSONが利用されることが多くなっています。XojoでJSONを扱う際にはJSONItemやParseJSONなどを使いますが、戻り値がVariantやAutoであるため、そのキャスト処理が必要になってしまいます。

そこでJSONの構造が分かっているという前提で、型を指定しながらJSONデータを探索できるようにしてみました。

使い方

基本的な使い方は次のようになります。

Dim json as JSON = new JSON(swagger)

System.DebugLog(json.s("swagger"))

System.DebugLog(json.o("info").s("description"))

// 配列の場合のみ一度取り出す必要あり
Dim childJson() as JSON = json.o("paths").o("/pet").o("post").a("tags")
System.DebugLog(childJson(0).s())

// またはインデックスを指定する
System.DebugLog(json.o("paths").o("/pet").o("post").a("tags", 0).s())

sメソッドで文字列が返ってきます。同様にnでDouble(数字)、bで真偽値が返ってきます。

oはオブジェクトでJSONクラスのインスタンスが返ってきます。そのため、さらにoメソッドでキーチェーン的につないでいくことが可能です。aメソッドはJSONインスタンスの配列が返ってきますが、このまま配列のインデックスを指定して使うことができないので一旦キャストするか、インデックスを引数として指定して取り出すこともできます。

JSONクラスを使うとJSONの深い階層へのアクセスも容易になります。ぜひ使ってみてください。

コードはgoofmint/Xojo_JSON: JSONを扱うためのクラスですにアップロードしてあります。ライセンスはMIT Licenseとなっています。