【问题标题】:put json data to a variable in my javascript code [duplicate]将json数据放入我的javascript代码中的变量[重复]
【发布时间】:2013-07-03 08:48:29
【问题描述】:

这是我目前的项目--->http://jsfiddle.net/ddfsb/2/ 观察代码中的 var 数据。出于测试目的,我只使用了几条记录。实际上我有大约 89k 条记录。

我有一个名为 content.json 的 json 文件。这正是它的运行方式:--

["51b59c162de88", [["parties", 0.0, 0.011]]]
["51b59c1b4f52f", [["star-speak", 0.0, 0.006], ["parties", 0.0, 0.011]]]
["51b59c2bdd5c5", [["signature", 0.002, 0.006], ["parties", 0.0037, 0.011]]]
["51b59c10ca18f", [["parties", 0.0, 0.017]]]
["51b59c15913b6", [["parties", 0.0, 0.011]]]
["51b59c2635997", [["fashion", 0.002, 0.006], ["parties", 0.0037, 0.011], ["royal-challenge", 0.002, 0.006]]]
["51b59c1a94870", [["parties", 0.0, 0.011]]]
["51b59c2844bcf", [["royal-challenge", 0.0077, 0.023]]]
["51b59c2d92798", [["signature", 0.002, 0.006], ["parties", 0.0037, 0.011]]]
["51b59c19aaa7f", [["parties", 0.0, 0.011], ["fashion", 0.0, 0.006]]]
["51b59c18ec68d", [["parties", 0.0, 0.028]]]

我想在不影响输出的情况下加载这个 json 文件的内容。如何将这些数据放入变量中。在我的脚本中放入 89K 记录会很疯狂。那么我该如何摆脱这个问题。

【问题讨论】:

  • 使用 AJAX 加载 JSON 数据?
  • 我想将 json 数据加载到我的脚本中。我怎样才能在其中使用 ajax?
  • a) 您的文件不是有效的 JSON。那里有多个数组,因此标准 JSON 解析器将失败。 b) 你真的需要一次所有的条目吗?否则构建一个 AJAX 解决方案,只传输所需的条目。
  • @Dogbert:看看我的代码。你会意识到我的实际问题是什么。观察 var 数据的格式。
  • 如果您尝试渲染具有 89K 行的表格,您将杀死浏览器。您需要支持分页的网格。

标签: javascript json d3.js


【解决方案1】:

can do it directly from D3.js如果你有它在一个文件中:

d3.json("your_file.json", function(json) {
     // do stuff   
});

尽管,您应该注意指出您的数据不是有效 JSON 的注释。在这种情况下,D3.js 将无法正确处理它。

【讨论】:

  • 我刚刚意识到您的问题与 SO 中的许多其他类似问题重复。 D3.js 标签需要尽快清理...
  • 我能问一下为什么我的答案不再有效吗?
【解决方案2】:

使用 AJAX 调用从您的服务器加载它。这是一个 jQuery 实现:

<script src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
<script>

$(document).ready(function() {
  $.getJSON( "content.json", function(data) {

    // Do stuff with your data here.

  });
});
<script>

【讨论】:

  • 感谢您的回答,但我认为您看不到我的代码,我正在使用 javascript。
  • jQuery Javascript。如果您愿意,可以使用 xmlHTTPRequest 对象对此进行编码。
  • 我使用它的方式是将我的所有数据放在一个变量中,如果我按照你的方法来做的话..你能指导我在我的代码中必须进行哪些更改才能呈现相同的输出。我从未尝试过 jquery,这就是为什么我提到它的 javascript
  • 通过 AJAX 调用,您的数据会直接加载到单个变量中。在我的示例中,data 参数包含从服务器接收到的数据。您应该能够将创建表的代码移动到我标记为// Do your stuff here 的函数中,只需进行最少的修改。但是,您用于在表中呈现 89k 行的脚本将需要很长时间。正如 Tommi 所说 - 您需要为此提供一些分页支持。
  • :我过去没有遇到过分页,我现在正在处理它,但是如果可能的话,你能给我一个关于通过 ajax 加载数据的小技巧吗,整个代码在上面的链接中完成...
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
  • 2020-12-29
  • 2019-03-06
  • 2017-05-24
  • 2020-12-25
相关资源
最近更新 更多