0

我正在使用 D3 通过他们的 choropleth 示例创建一些县数据。我正在使用 d3.json 选项与 jquery .ajax。我有一个 URL,当我使用它时它不会加载。经过一番研究,我发现网络服务需要一个额外的参数:

   {'county': {'year': 2002,'stat': 'crime'}} 

所以到这个网址的连接一直在我身上失败。

我尝试为 Web 服务添加额外的必需参数,如下所示:

d3.json("http://url/states", function (json) {
    data = "{'county': {'year': 2002,'stat': 'crime'}}"
    //basic d3 stuff from here below
    counties.selectAll("path")
        .attr("class", quantize);
    dataType = json,
        contentType = "application/json; charset=utf-8";
});

如果没有通话中的这些参数,我就无法连接,我不知道如何合并它们。

4

2 回答 2

1

可能是单引号没有被视为有效语法。您可以在JSONLint.com验证您的语法

改用双引号

data = '{"county": {"year": 2002, "stat": "crime"}}'
于 2012-11-01T14:57:20.230 回答
1

您的部分问题是您尝试在用于处理 Web 服务响应的代码中配置对要调用的 Web 服务的请求。

如果您无法在 url 中传递所需的参数(例如http://web.service.com/states?level=county&year=2002&stat=crime),d3 似乎无法为您提供所需的灵活性。要解决这个问题,您必须退回到原始 JavaScript 并构造适当的 XMLHttpRequest,如下所示:最简单的 SOAP 示例。或者,如果您正在使用诸如 jquery 或 dojo 之类的库,则可能有更方便的方法来实现相同的目标。

从请求中获得结果后,您可以使用与结果一起发送的数据(假设是 json)并插入 d3 进行可视化。

于 2012-11-01T16:39:15.643 回答