PHPでsmartyにassignした多次元配列をjavascriptに渡す

PHPでsmartyにassignした多次元配列をjavascriptに渡す

初心者なもので、非常に時間を使ってしまいました。
ググっても多次元配列を渡してる例があまり出なかったんですよね…

Smartyに渡していたのは以下の様なデータです。
これをjavascriptに渡して、javascriptの配列として処理するのが今回の目標。

Smarty_Variable Object (3)
->value = Array (1)
  2013 => Array (3)
    04 => Array (9)
      21 => Array (2)
        0 => Array (2)
          key_1 => "val_1"
          key_2 => "val_2"
        1 => Array (2)
          key_1 => "val_1"
          key_2 => "val_2"
          :
          :
->nocache = false
->scope = "file:XXXXXXX.html"

結論から言うとjsonで渡しました。
以下の様な流れです。

① phpファイルでjson_encodeし、smartyにassign

$smarty->assign("datas_json", json_encode($datas,true));

②テンプレート(HTML)内でdecodeし、javascript配列化

<script type="text/javascript">
<!--
    var json = '{{$datas_json}}';
    var data = JSON.parse(json);
// -->
</script>

ここで何回も
Uncaught SyntaxError: Unexpected token
というエラーが出て進めなかった。

調べてみたらescapeしてないのが問題らしく、エスケープ処理を色々やったら通りました。
下記のような感じで。

foreach($datas as $key => $val){
    $datas[key] = str_replace("\"", " ", $datas[$key]);
}

しかしその後も色々エラーが出たりして結局まだ完全解決はしていません。
うまくいかないデータを削って動かしてる状態です。
必要に迫られたら頑張ろう…疲れてしまった…