通过json对象获取对象而不是值“读取”通过json对象

问题描述:

我使用d3库从文件中读取json。我的JSON是键和值的龙行所以我用下面的代码,使之更加“可读”通过json对象获取对象而不是值“读取”通过json对象

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] 

所以我的问题是,如果值一个关键是我得到的“对象对象”而不是一个值的对象。但是,如果我的console.log应该是这样的:

console.log(input[key]); 

所有值将显示

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

以上是user_interaction和时间输出的一部分(在有对象的对象,而不是价值第一个例子)

我可以使用的

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

但随后的输出LO Oks丑陋:

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

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

我很抱歉对一个长文本, Thanx提前!

+0

您正在将其转换为字符串。不要这样做。 – SLaks

+0

但是,我可以很容易地阅读它。有没有其他的选择?顺便说一句,新的js和jsons :) – JavaEvgen

+0

也可能尝试console.dir(输入); https://developer.mozilla.org/en-US/docs/Web/API/Console/dir – Will

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

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

Looool,这不可能是事实我花了大约2个小时找出问题所在:D非常感谢你! !甚至不知道还有另一种可能性来组合值和字符串字符串:S – JavaEvgen