首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON对象到Google.visualization.DataTable

JSON对象到Google.visualization.DataTable
EN

Stack Overflow用户
提问于 2013-10-11 17:05:38
回答 1查看 660关注 0票数 0

我正在尝试将json对象转换为DataTable

代码语言:javascript
复制
var obj=  ""   
  {\"Total\":28,\"Submitted\":10,\"Pending\":3,\"Confirmed\":6,\"Selected\":1,
 \"Redirected\":7,\"NotSelected\":1,\"Cancelled\":2,\"Paid\":0}""

我尝试了这么多代码,但似乎都不起作用。我在试着像String --> Array--> DataTable一样。但不能在阵列本身上进行转换

代码语言:javascript
复制
obj.replace('{','').replace('}','').split(',');

第二种方法

代码语言:javascript
复制
 var value = JSON.stringify(obj);
                var blkstr = [];
                $.each(value, function (idx2, val2) {
                    blkstr.push(val2);
                });

数组的转换方式如下

代码语言:javascript
复制
 //Object
   var data = new google.visualization.DataTable();
//Column Declaration        
        data.addColumn('string', 'Legend');

                data.addColumn('number', 'count');
   //Insertion 

如果我使用object Property [obj.Total],这会非常简单。但是,这将很难为未来的变化而维护。

EN

回答 1

Stack Overflow用户

发布于 2013-10-11 17:59:03

第一点是您应该使用JSON.parse将json字符串转换为javascript对象,并使用JSON.stringyfy进行相反的转换。

代码语言:javascript
复制
var value = JSON.stringify(obj);

然后,您可以从数组的第一个对象(如果是数组)获取键,然后编写函数从数组创建列。

代码语言:javascript
复制
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]);
  }

但是您也应该有一些其他的方法来告诉数据类型详细信息。假设您有一些具有列名和数据类型的其他数组,那么编写泛型函数会更容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19314300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档