【发布时间】:2021-11-12 13:08:36
【问题描述】:
我想将像packageJson这样的json数据转换成适合树形图的分层格式
使用d3.hierarchy 转换对象
据我了解
每个包含嵌套数据的属性
需要使用内部的辅助函数进行转换
const test = d3.hierarchy(packageJson, d => d.scripts);
是通过查找每个具有嵌套对象的属性来转换packageJson 的唯一方法
或者是我不知道的任何 d3 辅助函数?
const fam = d3.hierarchy({
name: "root",
children: [
{name: "child #1"},
{
name: "child #2",
children: [
{name: "grandchild #1"},
{name: "grandchild #2"},
{name: "grandchild #3"}
]
}
]
})
// transform json
const packageJson = {
"name": "visualize-data",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"core-js": "^3.6.5",
"d3-color": "^3.0.1",
"d3-hierarchy": "^3.0.1",
"d3-selection": "^3.0.0",
"d3-shape": "^3.0.1",
"vue": "^3.0.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/compiler-sfc": "^3.0.0",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^7.0.0"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/vue3-essential",
"eslint:recommended"
],
"parserOptions": {
"parser": "babel-eslint"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
]
}
const test = d3.hierarchy(packageJson, d => d.scripts);
console.log(test)
#limit {
max-width: 100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<div id="limit">
</div>
【问题讨论】:
标签: javascript json d3.js data-structures