2016-03-21 14 views
0

Alanı json olarak güncellemek istiyorum.Nesne alanını bul ve javascript ile güncelleme yap

{ 
    "rows": [{ 
     "title": " row 1", 
     "panels": [{ 
      "targets": [{ 
       "selectedCIID": "5856742957ce424b8db6cfb309b6b013", 
       "series": "" 
      }] 
     }] 
    }, { 
     "title": "row 2", 
     "panels": [{ 
      "targets": [{ 
       "selectedCIID": "5856742957ce424b8db6cfb309b6b013", 
       "series": "" 
      }] 
     }, { 
      "targets": [{ 
       "selectedCIID": "5856742957ce424b8db6cfb309b6b013", 
       "series": "" 
      }] 
     }] 
    }] 
} 

Kod yukarıdaki: My alan selectedCIID olduğunu, bu alanda

rows-> paneller-> hedef-> selectedCIId,

var dashboard = results.dashboard; 
    var dashboardJson = angular.fromJson(dashboard); 
    //dashboardJson.rows //dashboardJson.rows[0].panels 
    var j; 
    for(i=0; i<=dashboardJson.rows; i++){ 
    for(j=0;) 
    dashboardJson.rows[i].panels 
    dashboardJson.rows[0].panels[0].targets[0].selectedCIID = ci; 
    //dashboardJson.rows[0].panels[0].targets[0].selectedCIID 
    } 

JSON, bazı hiyerarşi ile bazı nesne içinde olduğunu benim yaklaşımımı göstermek için sadece kukla kod. Yerel JS kodunu kullanarak bunu yapabilirim. döngü için.

Ancak bu nesneyi yinelemek için lodash kullanabiliyorsam, _each veya bir şey iyi olacak.

Ya

nasıl bu alan benim değişkeni ile güncel geliniyor yerde panellerin iç selectedCIID bulmak için kod yazabilirsiniz.

"selectedCIID" alanını güncelleştirmek istiyorum. Lütfen bana yardım edin ..

+0

Bu durumda sadece bir sorun gayet ('i <= dashboardJson.rows') eşitliği kaldırmak' = '0 dizininden değil 1'den başlayarak bu koşuldan kontrol edin; – itzmukeshy7

+0

evet. Anladım. Bu sadece ve örnek .. sen bana aynı şekilde yapmamı önerebilirsin .. –

+0

Bunu deneyin [Lodash ile JavaScript nesnesindeki özellikler üzerinden geç] (http://stackoverflow.com/questions/21310946/loop-through-properties- in-javascript-object-with-lodash) – itzmukeshy7

cevap

0

targets numaralı telefonun tüm özelliklerini değiştirmek istiyorsanız, bunu birden çok döngü yapabilirsiniz.

var rowI, panelI, targetI, 
    rows, panels, targets, target; 

rows = dashboardJson.rows; 
for (rowI = 0; rowI < rows.length; rowI++) { 
    panels = rows[rowI].panels; 

    for (panelI = 0; panelI < panels.length; panelI++) { 
     targets = panels[panelI].targets; 

     for (targetI = 0; targetI < targets.length; targetI++) { 
      target = targets[targetI]; 
      target.selectedCIID = ci; 
     } 
    } 
} 
Ayrıca durumda rows, panels istenen filtreleme yapmak istiyorum, bazı if ifadeleri ekleyebilir

, targets

İlgili konular