【问题标题】:How to save a json-object in an array?如何将json对象保存在数组中?
【发布时间】:2011-09-22 22:11:01
【问题描述】:

是否有可能将 json-object 转换为数组或其他东西?

我喜欢有一个函数,它通过 json 从 sqldatabase 中检索数据:

jQuery.getJSON("file.php", function(data) { ... });

这些数据应该存储在一个数组中,以便我可以在网站的多个位置使用它

【问题讨论】:

  • 当您可以拥有一个 Javascript 对象(具有命名访问权限)时,为什么还要一个数组(仅具有位置访问权限)?
  • 您只想将 JSON 对象包装在一个数组中吗?我们需要更多细节,给我们一个例子来帮助我们。
  • 首先,没有 JSON 对象。有 JSON 字符串和 JavaScript 对象。 JSON 字符串可以轻松转换为 JavaScript 对象。您将处理一个 JavaScript 对象,因为这是 jQuery 从 $.getJSON() 传递给 success 回调的内容。其次,请澄清您要做什么。为什么需要数组?您可以在网页上的多个位置使用相同的数据,而无需使用数组。你的数据是什么样的,你希望你的数组是什么样的?
  • 你想要一个包含一个 json 对象的数组吗?你能举一个预期用途的例子吗?

标签: java jquery arrays json


【解决方案1】:

如果您的 file.php 脚本为其响应返回适当的数据类型,则 data 参数将已包含解析的 JSON(例如,以实时 javascript 变量形式)。

如果您不喜欢数据的格式,并且想将其从其他格式转换为数组,则必须向我们展示它的格式,以便我们建议将其转换为某种格式的代码其他形式。

如果您只想将数据存储在变量中以便在其他地方使用,那么您可以通过将其存储在全局变量中来实现:

var fileData;
jQuery.getJSON("file.php", function(data) {
     fileData = data;
     // call any functions here that might want to process this data as soon as it's ready
});

数据现在位于名为 fileData 的全局变量中,您可以在页面的任何位置使用该变量。请记住,getJSON 调用是异步的,因此可能需要一些时间才能完成,并且在调用 getJSON 回调之前,数据在您的变量中不可用。

如果您多次调用此函数并希望收集每个响应,则可以将它们收集到这样的数组中:

var fileData = [];    // declare empty array
jQuery.getJSON("file.php", function(data) {
     fileData.push(data);  // add onto the end of the array
     // call any functions here that might want to process this data as soon as it's ready
});

【讨论】:

    【解决方案2】:

    如果您只想将 json 对象包装在现有数组中,则使用相关数组的 push() 方法,将对象作为参数传递。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      相关资源
      最近更新 更多