【问题标题】:how to load a json object instead of json file [duplicate]如何加载json对象而不是json文件[重复]
【发布时间】:2016-06-24 22:51:58
【问题描述】:

我正在尝试构建一个 Web 项目,以获取 JSON 格式的详细信息,例如:

{
    "file_id": 333, 
    "t": "2016-03-08 12:00:56"
}

我试图在 d3 js 条形图中显示输出。我面临的问题是我的代码适用于 JSON 文件,但不适用于从 JSON 反序列化的对象。谁能帮我解决这个问题?

JSON 文件的工作脚本部分是这样的:

d3.json("FILENAME", function(error, data) {
    data = JSON.parse(data);
    x.domain(data.map(function(d) { return d.letter }));
    y.domain([0, d3.max(data, function(d) { return d.frequency })]);

如果我将文件名更改为对象,则它不起作用。

【问题讨论】:

标签: json d3.js


【解决方案1】:

作为一个 JS 库 D3 仅适用于 JS 对象(以及其他 JS 数据类型),d3.json 只是一种从外部文件加载对象的方法。所以如果你不需要从外部文件加载数据,那么不要使用d3.json

//d3.json("FILENAME", function(error, data) {
    //data = JSON.parse(data);
    var data = {
        "file_id": 333, 
        "t": "2016-03-08 12:00:56"
    }; //your own object
    x.domain(data.map(function(d) { return d.file_id}));
    y.domain([0, d3.max(data, function(d) { return d.t})]);

希望对你有帮助

【讨论】:

  • 从cookie中提取json数据怎么样?我将 json 数据从 cookie 提取到变量,但无法使用 d3.json 函数更新图表。从这个答案看来,不能用 d3.json 函数做到这一点。您可以使用该功能并从 cookie 中提取数据,还是仅从文件中提取数据?
  • 从何处以及如何提取数据并不重要。最后,它完全是关于将所需的数据传递给 d3 方法。如果您需要从文件中获取它,请使用 d3.json,否则不需要。如果你能提供一些关于你如何做的代码会更好,否则很难猜测你面临的问题是什么。一个 jsfiddle 或任何类似的服务链接到您的代码会更有帮助。
【解决方案2】:

如果我将文件名更改为对象,则它不起作用。

然后你应该在一个函数中调用它并在参数中传递对象:

var obj = {}; // the object to be be passed for chart

function updateGraph(o){ // get in the params here
    var x = d3.scale.ordinal().rangeRoundBands([0, width]),
        y = d3.scale.linear().range([height, 0]);

    x.domain(o.letter);
    y.domain([0, o.frequency]);
}

updateGraph(obj); // <----pass it here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-14
    • 2013-10-28
    • 2020-09-28
    • 2023-02-06
    • 1970-01-01
    • 2016-06-16
    • 2020-03-01
    • 1970-01-01
    相关资源
    最近更新 更多