JSON AJAX网址需要更多

时间:2012-11-01 14:53:04

标签: jquery ajax d3.js

我正在使用D3以他们的等值范例来创建一些县数据。我使用d3.json选项与jquery .ajax。我有一个URL,当我使用它时,只是不加载。经过一些研究后,我发现Web服务需要一个额外的参数:

   {'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";
});

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

2 个答案:

答案 0 :(得分:1)

单引号可能不会被视为有效语法。您可以在JSONLint.com

验证语法

尝试使用双引号

data = '{"county": {"year": 2002, "stat": "crime"}}'

答案 1 :(得分:1)

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

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

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