【问题标题】:D3.js: How can I tell apart JSON data from JSON file/endpointD3.js:如何将 JSON 数据与 JSON 文件/端点区分开来
【发布时间】:2025-12-06 15:05:02
【问题描述】:

我希望函数能够在给定 JSON 文件路径或直接给定 JSON 数据的情况下可视化图形。有这样做的标准方法吗?我现在能想到的就是解析参数,如果以“.json”结尾,则传给d3.json(),否则直接传数据给graph.data()。

或者可能会出错?

例如

d3.json(data, function(error,data){

    if (error)
       //bind data directly

});

【问题讨论】:

    标签: d3.js


    【解决方案1】:

    所以听起来你有以下情况:

    你有一个功能

    function draw_graph(data) {
      // whatever you need to do to draw the graph
    }
    

    然后

    function maybe_xhr_and_then_draw_or_just_draw(path_or_data) {
      if(is_remote(path_or_data)) {
        d3.json(path_or_data, draw_graph)
      } else {
        draw_graph(path_or_data)
      }
    }
    

    问题是“is_remote 长什么样子?”

    如果我说得对,那么您实际上是在问如何键入 sniff,这在 javascript 之类的语言中是一个可疑的想法(请参阅here 了解原因)。

    如果你坚持,那么你可以这样做:

    function is_remote(path_or_data) {
      return !(path_or_data instanceof Object)
    }
    

    【讨论】:

    • 感谢您的链接和答案!