Tcl のデータを JSON に変換するにはjson::write
、Tcllib のパッケージが必要です。Tcl 配列から JSON オブジェクトを作成するには、次のように使用します (同様のアプローチが Tcl ディクショナリでも機能します)。
package require json::write
set accumulate {}
foreach {key value} [array get yourArray] {
lappend accumulate $key [json::write string $value]
}
set theJsonObject [json::write object {*}$accumulate]
Tcl リストを JSON 配列に変換するには:
package require json::write
set accumulate {}
foreach item $yourList {
lappend accumulate [json::write string $value]
}
set theJsonArray [json::write array {*}$accumulate]
これら 2 つのケースでは、すべての値が JSON 文字列として表されると想定していることに注意してください。埋め込む値が数値 (またはtrue
またはfalse
) の場合、特別なことをする必要はありません。Tcl が認識する値は、JSON リテラルとして問題なく機能します。リスト/配列/ディクテーションを埋め込むには、「再帰的」な使用json::write
ともう少し計画が必要です。Tcl と JSON では型の概念が大きく異なるため、自動ではありません。