我使用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提前!
答案 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
}
});