2016-08-04 170 views
0

我使用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

回答

1

通過將對象連接到字符串值來將對象轉換爲字符串。試試這個。

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