d3.json()和json.parse()会产生相同的结果吗
Does d3.json() and JSON.parse() produce the same results?
从加载外部JSON文件到使用本地JSON字符串,我遇到了一个问题。起初,d3.json()似乎返回了与我在$.getJSON()中使用json.parse()获得的json数组相同的json数组,尽管它们看起来很相似,但看起来d3.json在我的json数据中添加了一个"ID"变量。在D3中构造Sankey图时,这一点似乎非常重要。此外,使用完全相同的数据,使用$.getJSON()和JSON.parse(),该ID元素不存在于完全相同的输出调用中。D3是否有意在其数据中添加一个"ID"元素?如何使用JSON.parse()获得相同的结果?
因此,从视觉上看,console.log(mygraph)调用的输出显示为:
Object {source: Object, target: Object, value: "0", path: "path#0", dy: 0}
dy:0
id:0
path:"path#3"
source:Object
sy:0
target:Object
ty:0
value:"0"
__proto__:Object
但是,带有console.log(mygraph)调用的后一种方法看起来像:
Object {source: Object, target: Object, value: "0", path: "path#0", dy: 0}
dy:0
path:"path#3"
source:Object
sy:0
target:Object
ty:0
value:"0"
__proto__:Object
这个"ID"到底是什么?我如何使用后一种方法获得它?实际上,如何将本地JSON变量加载到D3中?
d3.json()
与$.getJSON()
类似,它将url字符串作为第一个参数,并将加载数据时调用的函数作为第二个参数。
JSON.parse()
做其他事情。它获取一个看起来像JSON的字符串,并将其解析为类似JSON的javascript对象。
两者都不会向生成的数据中添加任何内容,例如id
参数。id
必须在您正在加载/解析的数据中。
在生成id
时可能发生的一件事是,您成功地加载/解析了数据,然后将其传递给添加了id
道具的另一个函数。在这种情况下,你甚至可能会因为Chrome的console.log
允许你扩展你记录的任何对象而感到困惑。问题是,即使在其他函数向对象添加id
道具之前,您对对象进行了console.log
操作,但当您单击展开它时,它已经在那里并出现了。
- 对于每个json结果,使用类jquery添加css
- 在Ionic'中显示JSON结果;s系列重复
- 如何将JSON结果设置为'src'共'img'以在ASP.NET MVC4中显示图像
- 获取json结果的身份验证问题
- 无法在AJAX成功访问中显示JSON结果
- jQuery 循环 JSON 结果,对象作为值
- json结果显示第一个值
- node.js+MySQL;JSON结果-回调问题&没有响应客户端
- 我无法通过AJAX获得嵌套的JSON结果
- 我如何用jquery读取简单的json结果,以及如何发布新的结果
- onclick在视图中显示重复的json结果
- 如何在Javascript中解析Json结果
- 如何使用javascript将json结果转换为数组
- 调用.ajax方法得到未定义的json结果,返回json格式列表<字符串>
- 如何将自定义字段添加到Json结果-ASP.NET MVC
- 如何提醒我的 json 结果
- 无法在iPhone应用程序上使用PhoneGap和javascript获取JSON结果,但使用相同的代码在Android
- 以 json 结果的形式返回对象列表
- 如何使用 JQuery 以表格形式打印通用 json 结果
- jquery-ui 自动完成仅允许从多个 JSON 结果中按名称搜索