Как добавить значения в объект JSON? - PullRequest
6 голосов
/ 11 июня 2010

Я создал массив с:

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 ]

9 голосов
/ 11 июня 2010

Я приведу вам пример из вашей функции добавления:

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 голос
/ 11 июня 2010

Попробуйте это:

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);
}
0 голосов
/ 11 июня 2010

Я думаю, вы хотите что-то вроде этого:

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

  msg.push(message);        
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...