TouchDesignerでJSONをDAT Tableにパースする


はじめに

世の中には様々な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通信に関しては、また別の機会に記事をまとめたいと思います。