如何从手动填充的数组切换到Miso Dataset(JSON)中的数组

时间:2013-01-25 18:41:44

标签: jquery json miso.dataset

这是我正在尝试用MiSO数据集替换的当前手动填充的数组:

var stream = new Array();

stream [0] = "life";
stream [0] = "time";

我想用自动填充它的数据集替换它。以下是成功获取在数组中手动​​输入的值的示例代码。示例中只有两个值,但可能有数百个,我想将其重用于其他值。这就是我想要消除手动输入的原因。

var ds = new Miso.Dataset({
        importer: Miso.Dataset.Importers.GoogleSpreadsheet,
        parser: Miso.Dataset.Parsers.GoogleSpreadsheet,
        key : "0AkNLBJFrSMj2dDdKZ1FkaGIxYnF3U0pjeThIY2pjN3c",
        worksheet: "1"
    });
ds.fetch({
  success : function() {
       var magazine = ds.toJSON();

var title1 = magazine[0].name;
var title2 = magazine[1].name;
    alert(title1 + " " + title2);

    },
  error : function() {

  }
});

因此,我需要从MISO数据集创建stream数组,以便格式匹配:

这不起作用,但是我可以解释在MISO数据集中找到的每个值的“new”stream数组中值是如何匹配的唯一方法:

var stream = new Array();

stream [0] = magazine[0].name;
stream [1] = magazine[1].name;

我需要继续使用MISO,我无法重命名stream数组。

1 个答案:

答案 0 :(得分:0)

如前所述,请查看Access / process (nested) objects, arrays or JSON以获取有关如何访问对象和数组的正确解释。一些Miso tutorials也应该有所帮助。

你可以这样做:

ds.fetch({
    success : function() {
       var magazine = ds.toJSON();

       var stream = []; // if not already defined
       for(var i = 0, l = magazine.length; i < l; i++) { 
           stream.push(magazine[i].name);
       }

       processData(stream);
    }
});


function processData(stream) {
   // all the code that needs to access stream goes here
}