2016-03-30 23 views
0

bir javascript işlevine JSON nesnesi iletir nasılBen dijital cüzdan hiyerarşisi temsil eden bir JSON nesnesi var

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

oğul dizisi bir dosya gibi can diğer cüzdan içeren diğer cüzdan ... (vardır sistemi). Ben bir işleve çocuk cüzdan (masterWallet.childs) dizi geçmek ve ayıklamak ve bazı bilgiler yazdırmak istiyorum

<% 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> 
<% }); %> 

:

İşte benim html tablodur. Tüm childs'ı <% = JSON.stringify (mWallet.childs)%> ile birlikte görebiliyorum ama bu değişkeni işlevime iletemiyorum. Ben javascript konsolda vardır: bu hata ile

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

:

Uncaught SyntaxError: Unexpected identifier 

Soru: Nasıl bir işleve bir JSON nesnesi (? Ya da JSON nesneleri dizisini) geçmek?

+1

Daha sonra 'JSON String' geçmesine kullanarak ayrıştırmak gerekir' Javascript' ... – brso05

+1

Eğer 'denediniz window.getChilds (<% = JSON.stringify (masterWallet.childs) %>) '? – apsillers

+0

"JSON nesnesi" bir çelişkidir. JSON ise o zaman bir dizedir. Eğer bir nesne ise o zaman JSON değildir. –

cevap

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

İkinci seçenek doğru: masterWallets bir koleksiyon (dizi) – jfjobidon

+1

bir [fiddle] (https://jsfiddle.net/) oluşturabilir misiniz? Böylece hata ayıklayıcısında hata ayıklayabiliriz. –

+0

Bunu yaparsam: <% = walletObj.childs%> bir dizeyle değiştirilir: "[object nesnesi], [object nesnesi]" (fonksiyonun tipini basar ve bana String verir) JSON yaparsam .stringify (mWallet.childs) veri dizgeseldir ve çift tırnakların tümü " ile değiştirilir. Böylece, işlevimde çift tırnakları geri yükledim ve sonra JSON.parse yaptım ve JSON nesnesini geri aldım. Şimdi çalışıyor! JSON nesnesini doğrudan işleve geçirmek mümkün mü? – jfjobidon

İlgili konular