Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.02.2016, 19:17
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 11  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
Я тоже не понимаю что в этом ужасного, нужно скопировать одну структуру в другую. Как? рекурсией. сервер работает с той моделью что отправляет, мне надо работать с ней же у себя.
Код AS3:
{a1:false,a2:false,a3:false,a4:false}
зачем сопоставлять каждое свойство с классом вручную, когда можно сделать циклом?

Старый 27.02.2016, 19:48
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 12  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Вы уж извиняйте, что я вашу тему заспамил. )
Чтот вы совсем куда-то не туда заплыли. У вас есть ключи, вот по ним и разбирайте полученный json:
Код AS3:
var data = {name:'playerName', balance:{coins:5,gold:10}};
var player = new Player();
player.name = data["name"];
player.balance = getPlayerBalance(data["balance"]);
 
function getPlayerBalance(data){
    if(data === null)
        return null;
 
    var balance = new Balance;
    balance.coins = data["coins"];
    balance.gold = data["gold"];
 
    return balance;
}
__________________
Дети не должны знать о своих родителях

Старый 27.02.2016, 21:10
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 13  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Как? рекурсией
Цитата:
зачем сопоставлять каждое свойство с классом вручную, когда можно сделать циклом?
Как бы, цикл и рекурсия - это совершенно разные вещи. Рекурсии по возможности лучше избегать.
Из этой темы мне не понятно одно: зачем нужно получать имя класса?
__________________
Ко мне можно и нужно обращаться на ты)

Старый 29.02.2016, 13:23
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 14  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Какой смысл преобразовывать объект после парсера? Метод parse принимает два параметра и второй, как раз и предназначен для парсинга "вручную" с десериализацией и библиотекаршами.

Добавлено через 5 минут
2Tails не "взять" <-> "переложить", а "взять" <-> "создать", как пример. Ну и ничто не мешает вам некоторые составные модели парсить одним парсером, если это целесообразно. Смысл в том, чтобы отвязать модель от конкретного протокола/формата передачи данных.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 29.02.2016, 14:01
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 15  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Цитата:
Сообщение от alatar Посмотреть сообщение
Какой смысл преобразовывать объект после парсера? Метод parse принимает два параметра и второй, как раз и предназначен для парсинга "вручную" с десериализацией и библиотекаршами.
Спасибо за ответ. Конечно, преобразовывать исходные данные в объект для дальнейшей обработки не очень целесообразно, но так работает, например, стандартный JSON.parse или msg pack, который имеет собственный бинарный формат данных. Оба они разбирают полученные данные целиком, возвращая Object.

В моём случае, модель отделена от протокола передачи данных, но в модель зашита структура передаваемых данных.
__________________
Дети не должны знать о своих родителях

Старый 29.02.2016, 15:48
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 16  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Я про стандартный JSON.parse и говорил вообще-то.

Добавлено через 1 минуту
Цитата:
Сообщение от Tails Посмотреть сообщение
В моём случае, модель отделена от протокола передачи данных, но в модель зашита структура передаваемых данных.
Значит не отделена.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 29.02.2016, 16:07
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 17  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Я вот о чём думаю, так ли важно отделять структуру передаваемых данных? Ведь она фактически описывает структуру модели. Просто так структура передаваемых данных не будет изменяться, а вот формат передачи этой структуры легко может быть заменён. Действительно ли это нужно, что бы структура передаваемых данных тоже была не зависима от модели? Какие на практике могут быть ситуаций, когда требуется поменять не только формат, а ещё и структуру передаваемых данных?

Ммм надо подумать конечно, пораскинуть мозгами. Может быть, такие парсеры будут хорошо работать вместе с фабриками. Может я где то не прав или с чем то ещё не сталкивался, скажите мне. Было бы интересно глянуть на пример реального проекта, где такие "умные" парсеры грамотно реализованы и к месту.
__________________
Дети не должны знать о своих родителях

Старый 29.02.2016, 17:32
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 18  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Например, в текущем проекте, у меня некоторые модели слабо коррелируют с передаваемыми данными. Более того, заполняются и обновляются они более чем с одного запроса. Не всегда структура удобная для приложения будет удобной или уместной для сервера. Или, например, одним запросом могут обновлятся несколько моделей и не всегда они будут связаны друг с другом. И на горизонте маячит смена протокола, что потенциально повлечет изменения в формате данных, так что вся работа по работе с протоколом и преобразованию данных реализована в контроллерах (командах), которые локализуют логику запрос-ответ или запускаются по сообщению от сервера и обновляют модели.
Ну или посмотрите, как обычно реализуется синхронизация в сетевых играх.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 29.02.2016, 21:24
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 19  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
Как хорошо, что есть Ванила для джейсона )
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 01.03.2016, 05:08
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 20  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
cleptoman, да, тоже слышал про нее и думал использовать. но выше почему-то настоятельно рекомендуют так не делать)

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:41.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.