javascript - 使用 d3.json 而不读取文件

标签 javascript json d3.js

我正在尝试使用 d3.js 库创建交互式图表。我想交替从存储的 json 文件或直接从字典(根据某些用户输入创建)将数据输入到 d3 对象中。

从我使用的文件中读取

d3.json('/path/to/file.json')

用户输入字典后d被 build 。我尝试使用

user_file = json.dumps(d)
d3.json(user_file)

没有效果。

我有一个解决方法——根据用户输入,创建一个 user_file.json文件 json.dump(d, '/path/to/user_file.json')并直接从那里读取 d3.json('/path/to/user_file.json') 。除了感觉不太优雅之外,这还增加了新 json 文件被缓存的额外问题。

有什么建议吗?我是 javascript 新手,因此也将不胜感激有关“最佳实践”的建议。

最佳答案

d3.json() 通常有两个参数:url('/path/to/file.json')和将处理您在示例中遗漏的结果的函数。该处理程序通常是在 d3.json() 调用中声明的匿名函数,但它也可以是命名函数。我将定义一个命名函数来处理 json 结果,然后使用相同的函数来处理在用户输入上创建的数据。

function resultHandler(error, data){
    ... do stuff w/ data ...
}

d3.json('/path/to/file.json', resultHandler);

function userInputHandler() {
   ... create data ...
   resultHandler(null, d);
}

关于javascript - 使用 d3.json 而不读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42497073/

相关文章:

javascript - Highcharts 循环 JSON 对象来填充数据系列

javascript - 解析消息并返回 json 的更清洁的解决方案

d3.js - 非透明矩形内的文本不可见

javascript - 如何在 nvd3 多参数图上显示值?

javascript - 当只有独生子女时,d3 不会绘制树?

javascript - 导入 React 是如何让 JSX 处理成 JS 的?

javascript - D3 两个圆环图相互叠加,不同的数据集。 JavaScript/HTML

javascript - 检测 jQuery 自动完成是否有结果

javascript - $.getJSON 总是失败

java - REST GET 列表为 JSON