Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Копирование JSON, не удается копировать JSON - массив 
:(
    Опции темы
Apelsin
Дата 28.8.2011, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 20.4.2009

Репутация: 1
Всего: 1



Ребят, подскажите пожалуйста.
От createGame.php приходит JSON вот такого вида:
[{"field":[[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0]]},{"user":"Vasya"},{"id_game":99}]

Код

$.ajax
        ({
            type: "POST",
            data: "username=" + username + "&password=" + password,
            dataType: "json",
            url: "./ajax/createGame.php",
            success: function(msg)
            {    
                alert(msg); // выводит [object Object],[object Object],[object Object]
                                status = msg;
                                alert(status); // выводит  [object Object],[object Object],[object Object]
                                // НО:
                                alert(msg[1]['user']); // выводит Vasya 
                                // а
                                alert(status[1]['user']); // выводит undefined
            }
        });


Т.е. вопрос такой: как копировать полностью по значению json массив?

Это сообщение отредактировал(а) Apelsin - 28.8.2011, 20:12
PM MAIL   Вверх
Apelsin
Дата 28.8.2011, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 20.4.2009

Репутация: 1
Всего: 1



Разобрался. Чтобы копировать объект в js надо определить:
Код

Object.prototype.clone = function(obj) {
    if (obj === undefined) 
    obj = this;    
    if (typeof(obj) != "object") return obj;
    var newObject = new obj.constructor();
    for (objectItem in obj) newObject[objectItem] = obj.clone(obj[objectItem]);
    return newObject;
}

а затем применить вот так:
Код

new_obj = obj.clone();


Если кто-то поможет определить объект с вот такой структурой: 
Код

[{"field":[[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0]]},{"user":"Vasya"},{"id_game":99}]

Буду очень-приочень благодарен... Ну не выходит у меня :(.

Это сообщение отредактировал(а) Apelsin - 28.8.2011, 21:32
PM MAIL   Вверх
нуп
Дата 29.8.2011, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Проверил ваш скрипт, у меня не выводит undefined  smile 
PM MAIL   Вверх
Amphiluke
Дата 29.8.2011, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Цитата(Apelsin @  29.8.2011,  01:31 Найти цитируемый пост)
Разобрался. Чтобы копировать объект в js надо определить:

Очень плохая идея — расширение прототипа Object. Этим самым вы вообще всем объектам документа дописали перечислимое свойство clone. Теперь у вас даже «пустой» объект вида obj={} будет показывать наличие свойства clone при прогоне через цикл for/in. Даже элементы документа типа body тоже теперь будут иметь метод clone, что может привести к непредсказуемым результатам.  smile 
Уж лучше бы вместо расширения прототипа встроенного типа написали обычную функцию или метод пользовательского объекта.
PM   Вверх
ksnk
Дата 29.8.2011, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Apelsin, какая задача вообще ставится? Я не смог вообразить смысл подобного действия

если поставить тип string, а не json - то полученную строку можно простым образом копировать, а объекты из нее получать eval'ом... Столько объектов, сколько нужно...



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0463 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.