土屋つかさの技術ブログは今か無しか

土屋つかさが主にプログラミングについて語るブログです。

Utf8JsonをUnityで使ってみる(2)

 前回ドキュメントから適当に拾ったデシアライズのサンプルコードがdynamic型を使うことが前提になっていてどうなんだろうと思いましたが、単に対象のJSONデータの構造が未知の場合にはdynamicを使うことになるという事のようです(そりゃそうだ。rubyに慣れているとこういう所ではまります)。

 司ASTは階層構造を持つため、JSONデータを再帰的にデシアライズする必要があるのですが(そしてJsonUtilityだろうとutf8jsonだろうとそんな機能はない)、考えてみるとシリアライズ/デシアライズすることを前提としたデータがそんな設計になっているのがどうかしていると言えます。

 なので、基本的にノードはリニアに(つまり配列で)配置して、idで親子関係を指定することにしました。ひとまずは各要素にユニークな文字列でヘッダを設定し、それを参照することで子ノードを示します。将来的には配列の添え字番号でダイレクトに指定した方が速度が稼げそう。

 utf8jsonのその他のサンプルコードについてもunity上で動作する物を用意したので、次にまとめます。