Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Нужна помощь с двумерным массивом (https://javascript.ru/forum/jquery/3506-nuzhna-pomoshh-s-dvumernym-massivom.html)

SirNaFigator 27.04.2009 23:42

Нужна помощь с двумерным массивом
 
Доброго времени суток.
Некоторое время уже бьюсь с jquery, но вот в упор не могу понять как мне парстить двумерный массив полученный в json формате.

ПО сути мне приходит массив сообщений вот в таком формате:
Код:

{
    mess:{
        message:'время','кто сказал','кому скаали','цвет текста','сообщение',
        message:'время','кто сказал','кому скаали','цвет текста','сообщение',
        message:'время','кто сказал','кому скаали','цвет текста','сообщение',
        message:'время','кто сказал','кому скаали','цвет текста','сообщение'
    }
}

сообщений может быть от 0 до 100 за один запрос.
так же у меня кроме jquery подключается яваскрипт с функцией по отрисовке полученных сообщений ShowMessage(data)

на данном этапе скрипт выглядит так:
Код:

jQuery(document).ready(function(){
        jQuery.getJSON('chat_test.php', {}, function(json){
                jQuery('#mes').append(json.messages.message + '<br/>');
        });
});

соответственно оно не работает :wacko:
в лучшем случае, чего я добивался, это отображения одной строки из всех полученных.

Люди добрый поможите советом, христа ради, ибо заи***ся я уже =)
Заранее прошу прощения если я туплю и решение элементарно и лежит под носом.

Riim 27.04.2009 23:57

json не валидный



{
    mess:{
        message1:['время','кто сказал','кому скаали','цвет текста','сообщение'],
        message2:['время','кто сказал','кому скаали','цвет текста','сообщение'],
        message3:['время','кто сказал','кому скаали','цвет текста','сообщение'],
        message4:['время','кто сказал','кому скаали','цвет текста','сообщение']
    }
}

SirNaFigator 28.04.2009 00:00

хммм, точно!!!
А по функции обработки?

Riim 28.04.2009 00:03

Я кроме названия этой функции (ShowMessage) саму ее не вижу.

SirNaFigator 28.04.2009 00:10

я имел в виду, каким образов отображать весь массив сообщений, а не только первое.

Riim 28.04.2009 00:13

Цитата:

Сообщение от SirNaFigator
я имел в виду, каким образов отображать весь массив сообщений, а не только первое.

Не массив у вас, а объект (если вы про json.mess). И ключи в нем одинаковые. Каждый следующий перезаписывает предыдущий. Т. е. у вас один ключ.

SirNaFigator 28.04.2009 00:51

с учетом исправлений получается следующий ответ сервера:
Код:

{
    messages:{
        mess_312:['время','кто сказал','кому скаали','цвет текста','сообщение'],
        mess_542:['время','кто сказал','кому скаали','цвет текста','сообщение'],
        mess_9113:['время','кто сказал','кому скаали','цвет текста','сообщение'],
        mess_1214:['время','кто сказал','кому скаали','цвет текста','сообщение']
    }
}

Теперь возникает вопрос, как применить функцию ShowMess к каждому члену объекта, если я не знаю его ключ.

x-yuri 28.04.2009 01:02

for(var k in obj)

SirNaFigator 28.04.2009 01:11

Господа, огромное спасибо, теперь все работает =)

Riim 28.04.2009 01:21

А я бы json.messages массивом сделал. Трафик меньше и сервер генерацией ключей грузить не надо.


Часовой пояс GMT +3, время: 07:51.