我正在尝试将json对象转换为DataTable,
var obj= ""
{\"Total\":28,\"Submitted\":10,\"Pending\":3,\"Confirmed\":6,\"Selected\":1,
\"Redirected\":7,\"NotSelected\":1,\"Cancelled\":2,\"Paid\":0}""我尝试了这么多代码,但似乎都不起作用。我在试着像String --> Array--> DataTable一样。但不能在阵列本身上进行转换
obj.replace('{','').replace('}','').split(',');第二种方法
var value = JSON.stringify(obj);
var blkstr = [];
$.each(value, function (idx2, val2) {
blkstr.push(val2);
});数组的转换方式如下
//Object
var data = new google.visualization.DataTable();
//Column Declaration
data.addColumn('string', 'Legend');
data.addColumn('number', 'count');
//Insertion 如果我使用object Property [obj.Total],这会非常简单。但是,这将很难为未来的变化而维护。
发布于 2013-10-11 17:59:03
第一点是您应该使用JSON.parse将json字符串转换为javascript对象,并使用JSON.stringyfy进行相反的转换。
var value = JSON.stringify(obj);然后,您可以从数组的第一个对象(如果是数组)获取键,然后编写函数从数组创建列。
function Object_keys(obj) {
var keys = [], name;
for (name in obj) {
if (obj.hasOwnProperty(name)) {
keys.push(name);
}
}
return keys;
}
var keys = Object_keys(value[0]);
for (var i=0;i<keys.length;i++){
data.addColumn('string', keys[i]);
}但是您也应该有一些其他的方法来告诉数据类型详细信息。假设您有一些具有列名和数据类型的其他数组,那么编写泛型函数会更容易。
https://stackoverflow.com/questions/19314300
复制相似问题