关于 json:Creating javascript object from array values

Creating javascript object from array values

我正在尝试创建一个 javascript 对象,以便可以将其转换为 json 字符串,以便通过 php 更新 mysql 表。我是 javascript 中的对象和 json 的新手,所以我在网上学习了几个教程,但似乎仍然无法让它工作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var idArray =      [ 1, 2, 3];
var slideNo =      [ 1, 2, 3];
var isPublished =  [ 0, 1, 0];
var floaText =     [ 1, 0 , 1];

var myObject = [];

for(var i = 0; i < idArray.length; i++) {
    myObject[i] = {
        slideId : idArray[i],
        slideNo : slideNo [i],
        isPublished : isPublished [i],
        floatText : floaText [i]
    };
}

alert(myObject[0].slideId);

我似乎无法让上面的代码工作。我还尝试像这样添加报价标记:

1
2
3
4
5
6
myObject[i] = {
    slideId :""" + idArray[i] +""",
    slideNo :""" + slideNo[i] +""",
    isPublish :""" + isPublished[i] +""",
    floatText :""" + floaText[i]
};

但这似乎也不起作用。我做错了什么?


看起来您最近的编辑解决了其中一个问题:您需要在数组周围使用 [],而不是 {}.

接下来,您需要更改数组变量名称以匹配您在 for 循环中使用的名称。

最后,myObject 应该是一个数组,而不是一个对象,所以把它的 {} 改成 [].

这是您的代码的更新版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var idArray =         [ 1, 2, 3];
var slideArray =      [ 1, 2, 3];
var publishArray =    [ 0, 1, 0];
var floatArray =      [ 1, 0 , 1];

var myObject = [];

for(var i = 0; i < idArray.length; i++) {
    myObject[i] = {
        slideId : idArray[i],
        slideNo : slideArray[i],
        isPublished : publishArray[i],
        floatText : floatArray[i]
    };
}

alert(myObject[0].slideId);


使用 JSON.stringify 将对象转换为 json 字符串

1
alert(JSON.stringify(myObject[i]));