2014-07-05 37 views
0

我试图加载.json到D3,但我没有得到一个对象数组。当在d3.js中加载.json我没有得到一个对象数组

我的JSON的结构是这样的:

{ 
    "01": { 
    "a": "7.9146197142424404", 
    "b": "8", 
    "c": "64.52183289033583", 
    "d": "bar" 
    }, 
    "02": { 
    "a": "6.1448162722275468", 
    "b": "2", 
    "c": "82.657170917364141", 
    "d": "foo" 
    } 
} 

加载数据:

 d3.json('mydata.json', function(data){ 

      console.log(data) 


     }); 

当我CONSOLE.LOG我的数据,我得到这样的:

https://www.dropbox.com/s/rgf38dkt6nrurei/Screen%20Shot%202014-07-05%20at%2019.26.41.png

更新:

所以我想要做的是为每个.json对象添加元素,但如果我可以将第一个数字设置为Key,那将会很好。

+0

的可能重复的[使用关联数组作为D3数据](HTTP://计算器.com/questions/9589768/using-an-associative-array-as-data-for-d3) –

+0

你想要发生什么? –

+0

所以我想要做的是为每个.json对象添加元素,但如果我可以使第一个数字成为Key,那将会很好。 – user2123511

回答

0

您可以使用d3.entries()将您的一个巨型对象变成包含子对象的数组。

当您这样做时,您的每个阵列成员将是具有.key属性和.value属性的对象。您的案例中的密钥将为第一个成员的'01',第二个成员的'02'等。该值将是具有属性a,b,cd的对象。

例如:

d3.json('mydata.json', function(data) { 
    console.log(d3.entries(data)); 
}); 

将输出:

[{ 
    key: "01", 
    value: { 
    a: "7.9146197142424404" 
    b: "8" 
    c: "64.52183289033583" 
    d: "bar" 
    } 
}, 
{ 
    key: "02", 
    value: { 
    a: "6.1448162722275468" 
    b: "2" 
    c: "82.657170917364141" 
    d: "foo" 
    } 
}] 

下面是一个例子PLUNK

+0

正是我需要的。对于初学者来说,d3中的数据部分可能会让人困惑。我曾与.csv文件,但不与.json。非常感谢! – user2123511