2016-08-04 11 views
0

ファイルからjsonを読み取るのにd3ライブラリを使用します。私は以下のコードは、私が手オブジェクトを取得する値の代わりにオブジェクトjsonオブジェクトを通じて "読み取り"

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

出力があり、それはより多くの「読み」を作るために使用するので、私のJSONは、キーと値のルーンラインです:

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利用の可能性ock醜い:

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

だから、最初の例の出力にobjectオブジェクトの代わりに値を持たせることは可能ですか?

長いテキストをお詫び申し上げます。 Thanx!

+0

あなたは文字列に変換しています。それをしないでください。 – SLaks

+0

しかし、私はそれを通して簡単に読むことができます。他の選択肢はありますか? Btw Imはjsとjsonsに新しいです:) – JavaEvgen

+0

かもしれないが、console.dir(input); 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

関連する問題