はじめに
世の中には様々なAPIがありますが、ほとんどのAPIがJSON形式でデータで返してきます。
TouchDesignerでは連想配列に似たようなデータ保持の仕組みでTableDATというものがあります。
本稿では、TouchDesignerで何かしらのJSON形式のデータをTouchDesignerで扱いやすくするためにDAT TableにしてDAT to CHOPでCHOPで扱いやすくする方法を忘備録としてまとめたものです。
今回はネストが無いJSONデータをDAT Tableにパースしています。
さっそくスクリプト
# jsonを扱うために標準パッケージをインポート
import json
s = '{"a": "1", "b": "2", "c": "3"}'
jsonData = json.loads(s)
# DAT Tableの値を初期化
op('table_data').clear()
# JsonDataをforで回しながら取り出す
for key, val in jsonData.items():
# とりだしたデータをDAT Tableの最終行に追加
op('table_data').appendRow([key, val])
ノードはこんな感じ
ノードはこんな感じになりました。
今回は記事を書くために適当なJSONデータをスクリプト上で用意しましたが、別ファイルのJSONデータを読み込んで利用することも可能です。
Select CHOPを使えばチャンネルごとに数値を取り出すことができるので、ここから先は普段TouchDesignerを使うように数値を煮るなり焼くなりできます。
まとめ
TouchDesignerでJSON形式のデータを扱いやすくすることができました。
自分はこの方法をTouchDesignerとNode.jsで開発したサーバーでWebSocket通信をする際に使用しました。
TouchDesignerでのWebSocket通信に関しては、また別の機会に記事をまとめたいと思います。