获取对象而不是值"阅读"通过json对象

时间:2016-08-04 19:42:51

标签: javascript json d3.js

我使用d3库从文件中读取json。我的json是一系列键和值,因此我使用下面的代码使其更具有可读性和#34;

   d3.json("/try.json", function(error, input) {
        for(var key in input){
            console.log(key+ ' : '+input[key]);
        }
    });

我得到的输出是:

type : user_interaction
user_interaction : [object Object]
time : [object Object]
event_id : 771ae5e3-c9d0-4950-b349-55ceeb35f7ee
device : [object Object]
source : product-a
format : base-v2-client
tenant_id : 46bb7e3c2f0d01a3aa4a3b21a3b93fd886cdba88
application : [object Object]
consent : [object Object]
network : [object Object]
timestamp : 1433661896414
sender_info : [object Object]
system : [object Object]

所以我的问题是,如果一个键的值是一个对象,我得到" object Object"而不是一个值。但是如果我的console.log看起来像这样:

console.log(input[key]);

将显示所有值

{ type: 'view', view_id: 'msclient:view.main' }
{ create_timestamp: 1433661911699,
  send_timestamp: 1433661911703 }

上面是user_interaction和time的输出的一部分(在第一个例子中都有对象而不是值)

我可以使用

console.log(key+ ' : ');
console.log(input[key]);

然后输出看起来很难看:

type :
user_interaction
user_interaction :
{ type: 'view', view_id: 'msclient:view.main' }
time :
{ create_timestamp: 1433661911699,
  send_timestamp: 1433661911703 }

所以问题是,是否有可能使第一个示例的输出具有值而不是对象Object的东西?

我为一篇长篇文章道歉, Thanx提前!

1 个答案:

答案 0 :(得分:1)

您通过将对象连接到字符串值将对象转换为字符串。试试这个。

  d3.json("/try.json", function(error, input) {
        for(var key in input){
            console.log(key, ':', input[key]); // do not convert object to string
        }
    });