gpt4 book ai didi

javascript - d3.json() 和 JSON.parse() 产生相同的结果吗?

转载 作者:行者123 更新时间:2023-12-02 14:22:38 27 4
gpt4 key购买 nike

我在从加载外部 JSON 文件转向使用本地 json 字符串时遇到问题。起初,看起来 d3.json() 返回的 JSON 数组与我在 $.getJSON() 内部使用 JSON.parse() 获得的 JSON 数组相同,尽管它们看起来很相似,但看起来 d3.json 添加了一个“ID”变量到我的 JSON 数据。在构建 Sankey Graph in D3 时,这似乎非常重要。此外,使用完全相同的数据(通过 $.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' 编辑了您的对象,当您单击展开它时,它已经已经在那里并出现了。

关于javascript - d3.json() 和 JSON.parse() 产生相同的结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38532992/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com