D3是數(shù)據(jù)驅(qū)動(dòng)的JavaScript庫(kù),用于操作HTML文檔和SVG圖形。在大多數(shù)情況下,我們需要從外部數(shù)據(jù)源獲取數(shù)據(jù)以用于數(shù)據(jù)可視化。D3使得從JSON文件中獲取數(shù)據(jù)變得簡(jiǎn)單。
首先,我們需要?jiǎng)?chuàng)建一個(gè)HTML文件,并從D3庫(kù)導(dǎo)入,如下所示:
<head> <meta charset="utf-8"> <title>D3 JSON 數(shù)據(jù)讀取</title> <script src="https://d3js.org/d3.v4.min.js"></script> </head>
然后,我們需要?jiǎng)?chuàng)建一個(gè)HTML元素以顯示數(shù)據(jù)。這里我們使用一個(gè)簡(jiǎn)單的div元素,如下所示:
<body> <div id="data"></div> </body>
接下來(lái),我們需要?jiǎng)?chuàng)建一個(gè)JSON文件來(lái)存儲(chǔ)要顯示的數(shù)據(jù)。例如,我們將創(chuàng)建一個(gè)名為data.json的文件,在其中添加以下內(nèi)容:
[ { "name": "Tom", "age": 28 }, { "name": "Alice", "age": 32 }, { "name": "Bob", "age": 25 } ]
最后,我們需要使用D3從JSON文件中獲取數(shù)據(jù)并在HTML中顯示。這里我們首先需要使用D3的d3.json()方法來(lái)加載JSON文件,如下所示:
d3.json("data.json", function(data) { console.log(data); });
在這里,d3.json()是一個(gè)異步函數(shù),它將文件名作為第一個(gè)參數(shù),并帶有一個(gè)回調(diào)函數(shù)作為第二個(gè)參數(shù)。回調(diào)函數(shù)在JSON文件加載完成后執(zhí)行,并將加載的數(shù)據(jù)作為參數(shù)傳遞給它。
接下來(lái),我們將使用D3選擇器選擇HTML元素,通過(guò)調(diào)用data()和enter()方法將數(shù)據(jù)添加到HTML元素中,如下所示:
var div = d3.select("#data"); div.selectAll() .data(data) .enter() .append("p") .text(function(d) { return d.name + " is " + d.age + " years old."; });
在這里,我們首先使用d3.select()方法選擇ID為“ data”的HTML元素,然后我們使用selectAll()和data()方法將數(shù)據(jù)綁定到選定元素中的所有p元素上。接下來(lái),我們使用enter()方法創(chuàng)建新元素,使用append()方法將p元素添加到HTML中,最后使用text()方法在元素中顯示數(shù)據(jù)。
綜上所述,以上就是D3如何從JSON文件獲取數(shù)據(jù)的簡(jiǎn)單過(guò)程。記得保持JSON文件格式正確,使用d3.json()方法加載JSON文件,并使用D3選擇器將數(shù)據(jù)綁定到HTML元素上即可。 Happy coding!