2014-11-21 219 views
0

enter image description here如何从以下json获取密钥

我正在使用php后端的handsontable。我正在特林动态地创建表列标题,所以我可以创建使用柱名称的数组,我可以送入handsontable:

colHeaders: ['ID', 'First', 'Last Name', 'Address'], 

我已经包括JSON的在屏幕截图后端生产的样品。我如何创建获取密钥,以便我可以创建colHeaders数组?我已经试过:

var keys = res.keys(); 

我的装载功能是:

  $parent.find('button[name=load]').click(function() { 
       $.ajax({ 
       url: "AjaxController/tableLoad/"+tablename, 
       dataType: 'json', 
       type: 'GET', 
       success: function (res) { 

        var keys = res.keys(); 
        console.log(keys); 


        // create js title array from 1st row data 
//      colHeaders: ['ID', 'First', 'Last Name', 'Address'], 
//      handsontable.colHeaders: keys; 
        handsontable.loadData(res); 
        $console.text('Data loaded'); 
        console.log(res) 
       }, 

回答

1

您可以使用.map()获取对象的键如下:

var keys = $.map(res, function(element,key) { return key; }); 

但是对于您所提供的样品,对象的数组,你可以使用下列内容:

var keys = $.map(res[0], function(element,key) { return key; }); 
//RESULT: ["id", "name", "description"] 
+0

我最终使用了这个。 – user61629 2014-11-21 14:18:43

+0

太棒了!很高兴它有帮助:)享受! – PeterKA 2014-11-21 14:19:50

3

对于有效JSON使用Object.keys(object),得到它的键返回一个iterable对象。

var keys = Object.keys(res); 
+0

Object.keys是IE9 +。如果您需要支持IE8或更高版本,请添加polyfill。 MDN上有一个https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys – 2014-11-21 01:24:07

+0

非常感谢。 – user61629 2014-11-21 14:18:22