VVVVでJSONファイルを読み込んで値を取り出す場合、Reader (String) → AsXElement (JSON) →Element (XElement Split)の順に繋ぐ。
ここで問題点が二つ出た。
一つ目はKeyの名前が日本語だとすべて[item]となってしまうこと。
もう一つは値がarrayになっているとDeep ValueからもしくはChildrenの一番下の階層までたどらないと値を取り出せないこと。これだとどのKeyに対応した値なのか判別させることが難しい。できないことはないがわかりにくくなるしそこまでするなら別の方法を探したほうが良い。
そういうわけで手っ取り早く対処するにはKey名に半角英数しか使わず、値は単一になるようにすればいい。だが最終的にはKey名から自動でメニュー画面を生成したいため、その際に日本語を使えないのは痛い。なのでKey名に関してはxml分から抜き出すパッチを組んで対応する。
これで読み込みの問題は解決できた。あれ?ところでどうやってJSONで保存するんだ?
値を変更したあとそれをJSON形式で保存する方法がないことに今さら気づいた。
というわけで、結局は読み込みでもxmlに変換しているわけだし、xmlに関するノードは各種用意されているようなので、そっちでやったほうが良さそう。個人的にはJSONのほうがわかりやすかったんだけど仕方がない。次は値を変更した後xmlで保存する機構を作ってみようと思う。
コメント