2016-03-30 8 views
0

javascript関数にJSONオブジェクトを渡す方法:私はデジタル財布の階層を表すJSONオブジェクトを持っている

masterWallets = {wallet: {}, childs: [{}, {}, ..., {}]} 

チャイルズの配列は、ファイルのようなことができますが、他の財布が含まれている他の財布...(ありますシステム)。私は関数に子財布(masterWallet.childs)の配列を渡すと、抽出し、いくつかに関する情報を印刷したい

<% masterWallets.forEach(function(masterWallet) { %> 
     <tr> 
     <td>masterWallet.wallet.walletName</td> 
     <td><%= JSON.stringify(masterWallet.childs) %></td> 
     <td> 
      <script> 
      document.write(window.getChilds(<%= masterWallet.childs %>)); 
      </script> 
     </td> 
     </tr> 
<% }); %> 

は、ここに私のHTMLテーブルです。 <%= JSON.stringify(mWallet.childs)%> しかし、私はこの変数を自分の関数に渡すことはできません。私はJavaScriptコンソールにあります。このエラーが発生して

document.write(window.getChilds([object Object],[object Object])); 

Uncaught SyntaxError: Unexpected identifier 

質問:どのように私は、関数にJSONオブジェクト(?またはJSONオブジェクトの配列)を渡すのですか?

+1

あなたは 'JSON STRING'が、その後' Javascript'を使用してそれを解析... – brso05

+1

あなたは 'window.getChilds(<%= JSON.stringify(masterWallet.childs)を試してみまし渡す必要があります%>) '? – apsillers

+0

"JSONオブジェクト"は矛盾しています。それがJSONの場合は文字列です。オブジェクトの場合はJSONではありません。 –

答えて

0

If your masterWallets is an object of wallet and childs then; 
 

 
    masterWallets = {wallet: {}, childs: [{wallet:{},childs[{}...{n}]}, ..., {n}]} 
 
<% masterWallets.childs.forEach(function(wallet) { %> 
 
     <tr> 
 
     <td>masterWallets.wallet.walletName</td> 
 
     <td><%= JSON.stringify(wallet.childs) %></td> 
 
     <td> 
 
      <script> 
 
      document.write(window.getChilds(<%= wallet.childs %>)); 
 
      </script> 
 
     </td> 
 
     </tr> 
 
<% }); %> 
 

 
But if your masterWallets is a collection of wallets then; 
 

 
masterWallets = {{wallet: {}, childs: [{}, {}, ..., {n}]},{wallet: {}, childs: [{}, {}, ..., {n}]}}; 
 
<% masterWallets.forEach(function(walletObj) { %> 
 
     <tr> 
 
     <td>walletObj.walet.walletName</td> 
 
     <td><%= JSON.stringify(walletObj.childs) %></td> 
 
     <td> 
 
      <script> 
 
      document.write(window.getChilds(<%= walletObj.childs %>)); 
 
      </script> 
 
     </td> 
 
     </tr> 
 
<% }); %>

+0

2番目のオプションは正しい:masterWalletsはウォレットのコレクション(配列) – jfjobidon

+1

[fiddle](https://jsfiddle.net/)を作成できますか?そこで、デバッガでデバッグすることができます。 –

+0

<%= walletObj.childs%> "[オブジェクトオブジェクト]、[オブジェクトオブジェクト]"という文字列で置き換えられます(typeOfを出力し、Stringを返します) JSONを実行すると.stringify(mWallet.childs)データが文字列化され、すべての二重引用符が"に置き換えられます。したがって、私の関数で二重引用符を復元し、JSON.parseを行い、JSONオブジェクトを取得しました。今それは動作します!関数に直接JSONオブジェクトを渡すことは可能ですか? – jfjobidon

関連する問題