如何将值添加到JSON对象?

时间:2010-06-11 08:15:00

标签: javascript json

我用:

创建了一个数组
var msg = new Array();

然后,我有一个向这个数组添加值的函数,这个函数是:

function add(time, user, text){
    var message = [time, user, text];
    if (msg.length >= 50)
        msg.shift();

    msg.push(message);        
}

如您所见,如果数组包含50个或更多元素,我会使用.shift()删除第一个元素。 然后我添加一个数组作为元素。

好的,代码完美无缺,但现在我必须循环msg数组来创建一个JSON对象。

JSON对象应具有以下格式:

var obj = [
{'time' : time, 'user' : user, 'text' : text},
{'time' : time, 'user' : user, 'text' : text},
{'time' : time, 'user' : user, 'text' : text}
]

我的意思是......我必须循环msg数组,然后将所有值存储在JSON对象中。 我不知道如何在json obj中“连接”数组元素。

你能帮帮我吗?

非常感谢你!

3 个答案:

答案 0 :(得分:9)

我将从你的添加功能中给你一个例子:

function add(time, user, text){
    // this line is all I changed
    var message = {'time' : time, 'user' : user, 'text' : text};

    if (msg.length >= 50)
        msg.shift();

    msg.push(message);        
}

正如您所看到的,消息变量不再是数组,而是它想要的对象。

通过这个,你应该能够找到如何创建一个新数组并添加你想要的值。

答案 1 :(得分:1)

试试这个:

var len = msg.length;
var obj = [];
for (var i = 0; i < len; i++) {
    var item = {
        'time': msg[i][0],
        'user': msg[i][1],
        'text': msg[i][2]
    }
    obj.push(item);
}

答案 2 :(得分:0)

我想你想要这样的东西:

function add(time, user, text){
  var message = {time:time, user:user, text:text};
  if (msg.length >= 50)
    msg.shift();

  msg.push(message);        
}