我的项目是用d3.js绘制grahp。我发现了一些php代码,这绝对是我想要的。但我正在与C#和主场迎战所以我把它转换成asp.net。首先,我想编写一些硬编码数据样本并使用d3.js绘制图像。以及该PHP项目的JavaScript代码。现在我有一个返回json字符串的服务器端webmethod。参数dataSample是一个Dictionary类型。它看起来像下面,没有任何错误。Ajax检索Json字符串,但无法将成功数据循环为对象
return JsonConvert.SerializeObject(dataSample);
在前端我使用ajax来检索数据。
$.ajax({
type: 'POST',
url: 'Map.aspx/read_data',
contentType: 'application/json; charset=utf-8',
data: "{ }",
dataType: "json",
success: function(response) {
d3.json("", function (data) {
graph.data = response.d;
drawGraph();
});
},
error: function(error) {
console.log("Wwoops something went wrong !");
}
});
Ajax调用成功完成,这是response.d像下面
{"DSO":{"name":"DSO","type":"group0","depends":["BPR","Transmission Company","Government"],"dependedOnBy":["TSO","Transmission Company"],"docs":""},"TSO":{"name":"TSO","type":"group1","depends":["BPR","DSO","Producer Secondary Energy","Government"],"dependedOnBy":["Producer Secondary Energy"],"docs":""}}
然后我想每个循环JSON对象,所以我可以告诉drawGraph()来绘制控制台日志显示graph.data节点为每个对象,例如:
for (var name in graph.data) {
var obj = graph.data[name];
console.log("name: " + name + "object: " + obj);
我的问题是CONSOLE.LOG( “名称:” +名称+ “对象:” + OBJ)是不JSON输出每个对象。它循环每个字母而不是单个对象。
的incorrent的console.log输出
我想输出中的对象,而不是这个。
2015-12-18
Lucky
+0
的数据很可能还是一个JSON字符串,而不是一个对象呢,所以尝试解析它。请小心。 –
+2
另外,您的'ajax'调用很奇怪。你不需要'$ .ajax('和'd3.json',这两种方法都可以进行这个调用,你可以删除'd3.json'。 –