2016-04-11 53 views
0

現在假設我有一個JSON數據形成這樣的以下內容:如何在jQuery.dataTables使用嵌套的基於JSON的形成值

{ 「服務名稱」:「cacheWebApi」, 「說明」 :「這是CacheWebApiService」, 「IsActive」:true, 「Urls」:[{「ServiceAddress」:「http://192.168.111.210:8200」,「Weight」:5,「IsAvailable」:true}, {「ServiceAddress」 ,http://192.168.111.210:8200「,」Weight「:3,」IsAvailable「:true}] }

現在讓我擔心的是,「Url」是另一個嵌套的JSON格式。那麼如何將這個值綁定到數據表?和你有什麼好的想法(比如:像我只想顯示所有ServiceAddress)...

回答

0

這應該做你需要的東西:

var data = [{ 
    "ServiceName": "cacheWebApi", 
    "Description": "This is a CacheWebApiService", 
    "IsActive": true, 
    "Urls": [ 
     { 
      "ServiceAddress": "http://192.168.111.210:8200", 
      "Weight": 5, 
      "IsAvailable": true 
     }, 
     { 
      "ServiceAddress": ",http://192.168.111.210:8200", 
      "Weight": 3, 
      "IsAvailable": true 
     } 
    ] 
}]; 
$(function() { 
    var table = $('#example').dataTable({ 
     "data": data, 
     "columns": [ 
      { 
       "data": "ServiceName" 
      }, { 
       "data": "Description" 
      }, { 
       "data": "IsActive" 
      }, { 
       "data": "Urls[0].ServiceAddress" 
      }, { 
       "data": "Urls[0].Weight" 
      }, { 
       "data": "Urls[0].IsAvailable" 
      }, { 
       "data": "Urls[1].ServiceAddress" 
      }, { 
       "data": "Urls[1].Weight" 
      }, { 
       "data": "Urls[1].IsAvailable" 
      } 
     ], 
    }); 
}); 

你應該把你的數據在陣列中,雖然。工作JSFiddle

編輯

如果未定義的網址數量,你可以做這樣的事情:

var table = $('#example').dataTable({ 
    "data": data, 
    "columns": [ 
     { 
      "data": "ServiceName" 
     }, { 
      "data": "Description" 
     }, { 
      "data": "IsActive" 
     }, { 
      "data": "Urls", 
      "render": function(d){ 
       return JSON.stringify(d); 
      } 
     } 
    ], 
}); 

我想這是不是才華,但你幾乎可以做任何功能,例如:

var table = $('#example').dataTable({ 
    "data": data, 
    "columns": [ 
     { 
      "data": "ServiceName" 
     }, { 
      "data": "Description" 
     }, { 
      "data": "IsActive" 
     }, { 
      "data": "Urls", 
      "render": function(d){ 
       return d.map(function(c){ 
        return c.ServiceAddress 
       }).join(", "); 
      } 
     } 
    ], 
}); 
+0

但我不知道數據中有多少元素。這是一個組 – xqMogvKW

+0

我已經更新了我的答案。基本上如果你不知道你處理了多少,你可以遍歷它們。只要'render'函數返回一個字符串,那麼你可以按你認爲合適的方式做...如果'IsAvailable'爲false,則改變樣式...爲Weight添加一個加權系統...世界上的你的龍蝦! ;-) – annoyingmouse

相關問題